Changeset 3323 for trunk/kBuild/tools/VCC141.kmk
- Timestamp:
- Apr 17, 2020, 1:10:45 AM (5 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/kBuild/tools/VCC141.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 $(KBUILD_TARGET).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_VCC120 := Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting $(KBUILD_TARGET). 35 34 TOOL_VCC141 := Visual C++ 14.1 (aka Visual 2017 and MSC v19.1), targeting $(KBUILD_TARGET). 35 36 ifndef INCLUDED_WIN_COMMON_KMK 37 include $(KBUILD_PATH)/win-common.kmk 38 endif 39 40 # 36 41 # Tool Specific Properties 37 ifndef PATH_TOOL_VCC120 38 PATH_TOOL_VCC120 := $(wildcard $(KBUILD_DEVTOOLS_TRG)/vcc/v12*) 39 ifeq ($(PATH_TOOL_VCC120),) 40 PATH_TOOL_VCC120 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v12*) 42 # 43 ifndef PATH_TOOL_VCC141 44 PATH_TOOL_VCC141 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.amd64/vcc/v141*))) 45 ifeq ($(PATH_TOOL_VCC141),) 46 PATH_TOOL_VCC141 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/vcc/v141*))) 41 47 endif 42 ifeq ($(PATH_TOOL_VCC1 20),)43 PATH_TOOL_VCC1 20 := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/vcc/v12*)48 ifeq ($(PATH_TOOL_VCC141),) 49 PATH_TOOL_VCC141 := $(PATH_TOOL_VCC141X86) 44 50 endif 45 ifeq ($(PATH_TOOL_VCC1 20),)46 PATH_TOOL_VCC1 20 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/vcc/v12*)51 ifeq ($(PATH_TOOL_VCC141),) 52 PATH_TOOL_VCC141 := $(PATH_TOOL_VCC141) 47 53 endif 48 ifeq ($(PATH_TOOL_VCC120),) 49 PATH_TOOL_VCC120 := $(lastword $(sort $(PATH_TOOL_VCC120))) 54 ifeq ($(PATH_TOOL_VCC141),) 55 PATH_TOOL_VCC141 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/vcc/v141*))) 56 ifeq ($(PATH_TOOL_VCC141),) 57 PATH_TOOL_VCC141 := $(firstfile $(foreach ver,2017 2019,$(foreachfile progfilesdir,$(WINCMN_PROGRAM_FILES_LIST)\ 58 , $(rsortfiles $(qwildcard ,$(progfilesdir)/Microsoft\ Visual\ Studio/$(ver)/BuildTools/VC/Tools/MSVC/14.1?.*))))) 59 ifeq ($(PATH_TOOL_VCC141),) 60 $(warning kBuild: PATH_TOOL_VCC141 cannot be determined!) 61 PATH_TOOL_VCC141 := $(KBUILD_DEVTOOLS)/win.x86/vcc/v141 62 endif 63 endif 50 64 endif 51 # if not found, we'll enter 'pathless' mode.52 65 else 53 66 # Resolve any fancy stuff once and for all. 54 PATH_TOOL_VCC120 := $(PATH_TOOL_VCC120) 55 endif 56 ifneq ($(PATH_TOOL_VCC120),) 57 if "$(KBUILD_HOST).$(KBUILD_HOST_ARCH)" == "win.amd64" && exists("$(PATH_TOOL_VCC120AMD64)/bin/amd64") # Missing in express edition. 58 PATH_TOOL_VCC120_BIN.amd64 ?= $(PATH_TOOL_VCC120)/bin/amd64 59 else 60 PATH_TOOL_VCC120_BIN.amd64 ?= $(PATH_TOOL_VCC120)/bin/x86_amd64 67 PATH_TOOL_VCC141 := $(PATH_TOOL_VCC141) 68 endif 69 70 ifndef PATH_TOOL_VCC141_BASE_BIN 71 PATH_TOOL_VCC141_BASE_BIN := $(PATH_TOOL_VCC141)/bin 72 endif 73 ifndef PATH_TOOL_VCC141_HOST_BIN 74 PATH_TOOL_VCC141_HOST_BIN := $(PATH_TOOL_VCC141_BASE_BIN)/Host$(WINCMN_MAP_ARCH.$(KBUILD_HOST_ARCH)) 75 endif 76 ifndef PATH_TOOL_VCC141_BIN 77 PATH_TOOL_VCC141_BIN := $(PATH_TOOL_VCC141_HOST_BIN)/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH)) 78 endif 79 PATH_TOOL_VCC141_BIN_QSH := $(requote sh,$(PATH_TOOL_VCC141_BIN)) 80 81 PATH_TOOL_VCC141_LIB.amd64 ?= $(PATH_TOOL_VCC141)/lib/x64 82 PATH_TOOL_VCC141_LIB.arm32 ?= $(PATH_TOOL_VCC141)/lib/arm 83 PATH_TOOL_VCC141_LIB.arm64 ?= $(PATH_TOOL_VCC141)/lib/arm64 84 PATH_TOOL_VCC141_LIB.x86 ?= $(PATH_TOOL_VCC141)/lib/x86 85 86 PATH_TOOL_VCC141_ONECORE_LIB.amd64 ?= $(PATH_TOOL_VCC141)/lib/onecore/x64 87 PATH_TOOL_VCC141_ONECORE_LIB.arm32 ?= $(PATH_TOOL_VCC141)/lib/onecore/arm 88 PATH_TOOL_VCC141_ONECORE_LIB.arm64 ?= $(PATH_TOOL_VCC141)/lib/onecore/arm64 89 PATH_TOOL_VCC141_ONECORE_LIB.x86 ?= $(PATH_TOOL_VCC141)/lib/onecore/x86 90 91 PATH_TOOL_VCC141_INC ?= $(PATH_TOOL_VCC141)/include 92 93 PATH_TOOL_VCC141_ATLMFC ?= $(PATH_TOOL_VCC141)/atlmfc 94 PATH_TOOL_VCC141_ATLMFC_INC ?= $(PATH_TOOL_VCC141_ATLMFC)/include 95 PATH_TOOL_VCC141_ATLMFC_LIB.x86 ?= $(PATH_TOOL_VCC141_ATLMFC)/lib/x86 96 PATH_TOOL_VCC141_ATLMFC_LIB.amd64 ?= $(PATH_TOOL_VCC141_ATLMFC)/lib/x64 97 98 TOOL_VCC141_CC ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/cl.exe 99 TOOL_VCC141_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/cl.exe 100 TOOL_VCC141_AS ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/ml64.exe 101 #TOOL_VCC141_AR ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/lib.exe - just an exec wrapper for the below 102 TOOL_VCC141_AR ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/link.exe /LIB 103 TOOL_VCC141_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/link.exe 104 TOOL_VCC141_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/dumpbin.exe 105 TOOL_VCC141_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/editbin.exe 106 107 TOOL_VCC141_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED) 108 TOOL_VCC141_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED) 109 110 undefine TOOL_VCC141_USE_KSUBMIT # for now 111 ifdef TOOL_VCC141_USE_KSUBMIT 112 ifeq ($(KBUILD_HOST),win) 113 ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC141_BIN)),-3),64/) 114 TOOL_VCC141_KSUBMIT ?= kmk_builtin_kSubmit --64-bit 115 TOOL_VCC141_KSUBMIT_DD = $(TOOL_VCC141_KSUBMIT) -- 116 else 117 TOOL_VCC141_KSUBMIT ?= kmk_builtin_kSubmit --32-bit 118 TOOL_VCC141_KSUBMIT_DD = $(TOOL_VCC141_KSUBMIT) -- 119 endif 61 120 endif 62 PATH_TOOL_VCC120_BIN.x86 ?= $(PATH_TOOL_VCC120)/bin 63 PATH_TOOL_VCC120_BIN ?= $(PATH_TOOL_VCC120_BIN.$(KBUILD_TARGET_ARCH)) 64 PATH_TOOL_VCC120_LIB.amd64 ?= $(PATH_TOOL_VCC120)/lib/amd64 65 PATH_TOOL_VCC120_LIB.x86 ?= $(PATH_TOOL_VCC120)/lib 66 PATH_TOOL_VCC120_LIB ?= $(PATH_TOOL_VCC120_LIB.$(KBUILD_TARGET_ARCH)) 67 PATH_TOOL_VCC120_INC ?= $(PATH_TOOL_VCC120)/include 68 PATH_TOOL_VCC120_ATLMFC ?= $(PATH_TOOL_VCC120X86)/atlmfc 69 PATH_TOOL_VCC120_ATLMFC_INC ?= $(PATH_TOOL_VCC120_ATLMFC)/include 70 PATH_TOOL_VCC120_ATLMFC_LIB.amd64 ?= $(PATH_TOOL_VCC120_ATLMFC)/lib 71 PATH_TOOL_VCC120_ATLMFC_LIB.x86 ?= $(PATH_TOOL_VCC120_ATLMFC)/lib/amd64 72 PATH_TOOL_VCC120_ATLMFC_LIB ?= $(PATH_TOOL_VCC120_ATLMFC_LIB.$(KBUILD_TARGET_ARCH)) 73 TOOL_VCC120_CC ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/cl.exe 74 TOOL_VCC120_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/cl.exe 75 TOOL_VCC120_AS ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/ml64.exe 76 TOOL_VCC120_AR ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/lib.exe 77 TOOL_VCC120_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/link.exe 78 TOOL_VCC120_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/dumpbin.exe 79 TOOL_VCC120_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/editbin.exe 80 else 81 # Pathless, relies on the environment. 82 TOOL_VCC120_CC ?= $(EXEC_X86_WIN32) cl.exe 83 TOOL_VCC120_CXX ?= $(EXEC_X86_WIN32) cl.exe 84 TOOL_VCC120_AS ?= $(EXEC_X86_WIN32) ml64.exe 85 TOOL_VCC120_AR ?= $(EXEC_X86_WIN32) lib.exe 86 TOOL_VCC120_LD ?= $(EXEC_X86_WIN32) link.exe 87 TOOL_VCC120_DUMPBIN ?= $(EXEC_X86_WIN32) dumpbin.exe 88 TOOL_VCC120_EDITBIN ?= $(EXEC_X86_WIN32) editbin.exe 89 endif 90 TOOL_VCC120_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC120_RC_CACHED) 91 TOOL_VCC120_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC120_MT_CACHED) 92 93 # The following in duplicated in VCC120.kmk and VCC120X86.kmk. 94 TOOL_VCC120_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstword \ 95 $(if-expr defined(PATH_SDK_WINPSDK71_BIN), $(wildcard $(PATH_SDK_WINPSDK71_BIN)/$2)) \ 96 $(if-expr defined(PATH_SDK_WINPSDK_BIN) , $(wildcard $(PATH_SDK_WINPSDK_BIN)/$2)) \ 97 $(rsort $(wildcard $(KBUILD_DEVTOOLS_HST)/sdk/*/[Bb][Ii][Nn]/$2)) \ 98 $(rsort $(wildcard $(KBUILD_DEVTOOLS_HST_ALT)/sdk/*/[Bb][Ii][Nn]/$2)) \ 121 endif 122 123 ## Helper for finding rc.exe and mt.exe in the SDK. 124 TOOL_VCC141_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstfile \ 125 $(if-expr defined(PATH_SDK_WINSDK10_BIN) , $(qwildcard ,$(PATH_SDK_WINSDK10_BIN)/$2)) \ 126 $(if-expr defined(PATH_SDK_WINPSDK71_BIN), $(qwildcard ,$(PATH_SDK_WINPSDK71_BIN)/$2)) \ 127 $(if-expr defined(PATH_SDK_WINPSDK_BIN) , $(qwildcard ,$(PATH_SDK_WINPSDK_BIN)/$2)) \ 128 $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS_HST)/sdk/*/[Bb][Ii][Nn]/$2)) \ 129 $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS_HST_ALT)/sdk/*/[Bb][Ii][Nn]/$2)) \ 99 130 $1)) 100 TOOL_VCC120_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC120_FN_FIND_SDK_TOOL_SUB),)$($3) 101 102 ## Disabled fast DEP_IDB based dependencies. 103 #VCC120_OLD_DEPS = 1 131 TOOL_VCC141_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC141_FN_FIND_SDK_TOOL_SUB),)$($3) 104 132 105 133 ## Constructs the correct .pdb name (the name is lowercased). 106 134 # @param $(1) Base name, no extention. 107 135 # @param $(2) The extension. 108 TOOL_VCC120_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2) 109 110 111 # General Properties used by kBuild 112 TOOL_VCC120_COBJSUFF ?= .obj 113 TOOL_VCC120_CFLAGS ?= -TC -nologo -Zi 114 TOOL_VCC120_CFLAGS.debug ?= 115 TOOL_VCC120_CFLAGS.dbgopt ?= -O2 116 TOOL_VCC120_CFLAGS.release ?= -O2 117 TOOL_VCC120_CFLAGS.profile ?= -O2 118 TOOL_VCC120_CINCS ?= $(PATH_TOOL_VCC120_INC) 119 TOOL_VCC120_CDEFS ?= 120 121 TOOL_VCC120_CXXOBJSUFF ?= .obj 122 TOOL_VCC120_CXXFLAGS ?= -TP -nologo -Zi 123 TOOL_VCC120_CXXFLAGS.debug ?= 124 TOOL_VCC120_CXXFLAGS.dbgopt ?= -O2 125 TOOL_VCC120_CXXFLAGS.release ?= -O2 126 TOOL_VCC120_CXXFLAGS.profile ?= -O2 127 TOOL_VCC120_CXXINCS ?= $(PATH_TOOL_VCC120_INC) $(PATH_TOOL_VCC120_ATLMFC_INC) 128 TOOL_VCC120_CXXDEFS ?= 129 130 TOOL_VCC120_ASOBJSUFF ?= .obj 131 132 TOOL_VCC120_RCOBJSUFF ?= .res 133 TOOL_VCC120_RCINCS ?= $(PATH_TOOL_VCC120_INC) $(PATH_TOOL_VCC120_ATLMFC_INC) 134 135 TOOL_VCC120_ARFLAGS.amd64 ?= -machine:amd64 136 TOOL_VCC120_ARFLAGS.x86 ?= -machine:x86 137 TOOL_VCC120_ARFLAGS ?= -nologo 138 TOOL_VCC120_ARLIBSUFF ?= .lib 139 140 TOOL_VCC120_LDFLAGS.amd64 ?= -machine:amd64 141 TOOL_VCC120_LDFLAGS.x86 ?= -machine:x86 142 TOOL_VCC120_LDFLAGS ?= -nologo 143 TOOL_VCC120_LDFLAGS.debug ?= -debug 144 TOOL_VCC120_LDFLAGS.dbgopt ?= -debug 145 TOOL_VCC120_LDFLAGS.profile ?= -debug 146 TOOL_VCC120_LDFLAGS.release ?= 147 TOOL_VCC120_LIBPATH.amd64 ?= $(PATH_TOOL_VCC120_LIB.amd64) $(PATH_TOOL_VCC120_ATLMFC_LIB.amd64) 148 TOOL_VCC120_LIBPATH.x86 ?= $(PATH_TOOL_VCC120_LIB.x86) $(PATH_TOOL_VCC120_ATLMFC_LIB.x86) 136 TOOL_VCC141_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2) 137 138 139 # 140 # Properties used by kBuild 141 # 142 TOOL_VCC141_COBJSUFF ?= .obj 143 TOOL_VCC141_CFLAGS ?= -TC -nologo -Zi 144 TOOL_VCC141_CFLAGS.debug ?= 145 TOOL_VCC141_CFLAGS.dbgopt ?= -O2 146 TOOL_VCC141_CFLAGS.release ?= -O2 147 TOOL_VCC141_CFLAGS.profile ?= -O2 148 TOOL_VCC141_CINCS ?= $(PATH_TOOL_VCC141_INC) 149 TOOL_VCC141_CDEFS ?= 150 151 TOOL_VCC141_CXXOBJSUFF ?= .obj 152 TOOL_VCC141_CXXFLAGS ?= -TP -nologo -Zi 153 TOOL_VCC141_CXXFLAGS.debug ?= 154 TOOL_VCC141_CXXFLAGS.dbgopt ?= -O2 155 TOOL_VCC141_CXXFLAGS.release ?= -O2 156 TOOL_VCC141_CXXFLAGS.profile ?= -O2 157 TOOL_VCC141_CXXINCS ?= $(PATH_TOOL_VCC141_INC) $(PATH_TOOL_VCC141_ATLMFC_INC) 158 TOOL_VCC141_CXXDEFS ?= 159 160 TOOL_VCC141_ASOBJSUFF ?= .obj 161 162 TOOL_VCC141_RCOBJSUFF ?= .res 163 TOOL_VCC141_RCINCS ?= $(PATH_TOOL_VCC141_INC) $(PATH_TOOL_VCC141_ATLMFC_INC) 164 165 TOOL_VCC141_ARFLAGS ?= -nologo 166 TOOL_VCC141_ARFLAGS.x86 ?= -machine:x86 167 TOOL_VCC141_ARFLAGS.amd64 ?= -machine:amd64 168 TOOL_VCC141_ARFLAGS.arm32 ?= -machine:arm 169 TOOL_VCC141_ARLIBSUFF ?= .lib 170 171 TOOL_VCC141_LDFLAGS ?= -nologo 172 TOOL_VCC141_LDFLAGS.x86 ?= -machine:x86 173 TOOL_VCC141_LDFLAGS.amd64 ?= -machine:amd64 174 TOOL_VCC141_LDFLAGS.arm32 ?= -machine:arm 175 TOOL_VCC141_LDFLAGS.debug ?= -debug 176 TOOL_VCC141_LDFLAGS.dbgopt ?= -debug 177 TOOL_VCC141_LDFLAGS.profile ?= -debug 178 TOOL_VCC141_LDFLAGS.release ?= 149 179 150 180 … … 163 193 # @param $(outbase) Output basename (full). Use this for list files and such. 164 194 # @param $(objsuff) Object suffix. 165 TOOL_VCC120_COMPILE_C_DEPEND = 166 TOOL_VCC120_COMPILE_C_DEPORD = 167 TOOL_VCC120_COMPILE_C_OUTPUT = 168 TOOL_VCC120_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC120_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120_PDB, $(outbase)-obj,idb) 169 define TOOL_VCC120_COMPILE_C_CMDS 170 $(QUIET)$(TOOL_VCC120_CC) -c\ 171 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 195 TOOL_VCC141_COMPILE_C_DEPEND = 196 TOOL_VCC141_COMPILE_C_DEPORD = 197 TOOL_VCC141_COMPILE_C_OUTPUT = 198 TOOL_VCC141_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb) 199 ifdef TOOL_VCC141_KSUBMIT 200 TOOL_VCC141_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed 201 define TOOL_VCC141_COMPILE_C_CMDS 202 $(QUIET)$(TOOL_VCC141_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\ 203 -- $(TOOL_VCC141_CC) -c\ 204 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 172 205 -Fd$(outbase)-obj.pdb \ 173 206 -Fo$(obj)\ 174 207 $(subst /,\\,$(abspath $(source))) 208 endef 209 else 210 define TOOL_VCC141_COMPILE_C_CMDS 211 $(QUIET)$(TOOL_VCC141_CC) -c\ 212 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 213 -Fd$(outbase)-obj.pdb \ 214 -Fo$(obj)\ 215 $(subst /,\\,$(abspath $(source))) 175 216 $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj) 176 endef 217 endef 218 endif # !TOOL_VCC141_KSUBMIT 177 219 178 220 … … 190 232 # @param $(outbase) Output basename (full). Use this for list files and such. 191 233 # @param $(objsuff) Object suffix. 192 TOOL_VCC120_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE) 193 TOOL_VCC120_COMPILE_CXX_DEPORD = 194 TOOL_VCC120_COMPILE_CXX_OUTPUT = 195 TOOL_VCC120_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\ 196 ,,$(call TOOL_VCC120_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120_PDB, $(outbase)-obj,idb)) 197 define TOOL_VCC120_COMPILE_CXX_CMDS 198 $(QUIET)$(TOOL_VCC120_CXX) -c\ 199 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 234 TOOL_VCC141_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE) 235 TOOL_VCC141_COMPILE_CXX_DEPORD = 236 TOOL_VCC141_COMPILE_CXX_OUTPUT = 237 TOOL_VCC141_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\ 238 ,,$(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb)) 239 ifdef TOOL_VCC141_KSUBMIT 240 TOOL_VCC141_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed 241 define TOOL_VCC141_COMPILE_CXX_CMDS 242 $(QUIET)$(TOOL_VCC141_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\ 243 -- $(TOOL_VCC141_CXX) -c\ 244 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 200 245 $(if-expr defined($(target)_PCH_HDR)\ 201 246 ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\ … … 203 248 -Fo$(obj)\ 204 249 $(subst /,\\,$(abspath $(source))) 250 endef 251 else 252 define TOOL_VCC141_COMPILE_CXX_CMDS 253 $(QUIET)$(TOOL_VCC141_CXX) -c\ 254 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 255 $(if-expr defined($(target)_PCH_HDR)\ 256 ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\ 257 -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_1_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \ 258 -Fo$(obj)\ 259 $(subst /,\\,$(abspath $(source))) 205 260 $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj) 206 endef 261 endef 262 endif # !TOOL_VCC141_KSUBMIT 207 263 208 264 … … 213 269 # related _1_VCC_PCH_FILE and add -Yc. 214 270 # 215 TOOL_VCC120-PCH := Helper for creating precompiled header using CXX handling. 216 TOOL_VCC120-PCH_EXTENDS := VCC120 217 TOOL_VCC120-PCH_CXXOBJSUFF := .obj 218 TOOL_VCC120-PCH_CXXINCS = $(TOOL_VCC120_CXXINCS) 219 TOOL_VCC120-PCH_CXXFLAGS = $(TOOL_VCC120_CXXFLAGS) -FS 220 TOOL_VCC120-PCH_CXXFLAGS.debug = $(TOOL_VCC120_CXXFLAGS.debug) 221 TOOL_VCC120-PCH_CXXFLAGS.dbgopt = $(TOOL_VCC120_CXXFLAGS.dbgopt) 222 TOOL_VCC120-PCH_CXXFLAGS.release = $(TOOL_VCC120_CXXFLAGS.release) 223 TOOL_VCC120-PCH_CXXFLAGS.profile = $(TOOL_VCC120_CXXFLAGS.profile) 224 TOOL_VCC120-PCH_COMPILE_CXX_DEPEND = $(NO_SUCH_VARIABLE) 225 TOOL_VCC120-PCH_COMPILE_CXX_DEPORD = $(NO_SUCH_VARIABLE) 226 TOOL_VCC120-PCH_COMPILE_CXX_OUTPUT = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB) 227 TOOL_VCC120-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE) 228 ifdef TOOL_VCC120_KSUBMIT 229 define TOOL_VCC120-PCH_COMPILE_CXX_CMDS 230 $(QUIET)$(TOOL_VCC120_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\ 231 -- $(TOOL_VCC120_CXX) -c -Yc\ 232 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 271 TOOL_VCC141-PCH := Helper for creating precompiled header using CXX handling. 272 TOOL_VCC141-PCH_EXTENDS := VCC141 273 TOOL_VCC141-PCH_CXXOBJSUFF := .obj 274 TOOL_VCC141-PCH_CXXINCS = $(TOOL_VCC141_CXXINCS) 275 TOOL_VCC141-PCH_CXXFLAGS = $(TOOL_VCC141_CXXFLAGS) -FS 276 TOOL_VCC141-PCH_CXXFLAGS.debug = $(TOOL_VCC141_CXXFLAGS.debug) 277 TOOL_VCC141-PCH_CXXFLAGS.dbgopt = $(TOOL_VCC141_CXXFLAGS.dbgopt) 278 TOOL_VCC141-PCH_CXXFLAGS.release = $(TOOL_VCC141_CXXFLAGS.release) 279 TOOL_VCC141-PCH_CXXFLAGS.profile = $(TOOL_VCC141_CXXFLAGS.profile) 280 TOOL_VCC141-PCH_COMPILE_CXX_DEPEND = $(NO_SUCH_VARIABLE) 281 TOOL_VCC141-PCH_COMPILE_CXX_DEPORD = $(NO_SUCH_VARIABLE) 282 TOOL_VCC141-PCH_COMPILE_CXX_OUTPUT = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB) 283 TOOL_VCC141-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE) 284 ifdef TOOL_VCC141_KSUBMIT 285 define TOOL_VCC141-PCH_COMPILE_CXX_CMDS 286 $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB) 287 $(QUIET)$(TOOL_VCC141_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\ 288 -- $(TOOL_VCC141_CXX) -c -Yc\ 289 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 233 290 -Fp$($(target)_1_VCC_PCH_FILE) \ 234 291 -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \ … … 238 295 endef 239 296 else 240 define TOOL_VCC120-PCH_COMPILE_CXX_CMDS 241 $(QUIET)$(TOOL_VCC120_CXX) -c -Yc\ 242 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 297 define TOOL_VCC141-PCH_COMPILE_CXX_CMDS 298 $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB) 299 $(QUIET)$(TOOL_VCC141_CXX) -c -Yc\ 300 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 243 301 -Fp$($(target)_1_VCC_PCH_FILE) \ 244 302 -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \ … … 249 307 250 308 endef 251 endif # !TOOL_VCC1 20_KSUBMIT309 endif # !TOOL_VCC141_KSUBMIT 252 310 253 311 … … 267 325 # @param $(outbase) Output basename (full). Use this for list files and such. 268 326 # @param $(objsuff) Object suffix. 269 TOOL_VCC1 20_COMPILE_RC_OUTPUT=270 TOOL_VCC1 20_COMPILE_RC_DEPEND =271 TOOL_VCC1 20_COMPILE_RC_DEPORD=272 define TOOL_VCC1 20_COMPILE_RC_CMDS273 $(QUIET)$(TOOL_VCC1 20_RC) \274 $(flags) $( addprefix /i, $(subst /,\\,$(incs))) $(addprefix/d, $(defs))\327 TOOL_VCC141_COMPILE_RC_DEPEND = 328 TOOL_VCC141_COMPILE_RC_DEPORD = 329 TOOL_VCC141_COMPILE_RC_OUTPUT = 330 define TOOL_VCC141_COMPILE_RC_CMDS 331 $(QUIET)$(TOOL_VCC141_RC) \ 332 $(flags) $(qaddprefix sh,/i, $(subst /,\\,$(incs))) $(qaddprefix sh,/d, $(defs))\ 275 333 /fo$(obj)\ 276 334 $(subst /,\\,$(abspath $(source))) … … 288 346 # @param $(outbase) Output basename (full). Use this for list files and such. 289 347 # 290 TOOL_VCC1 20_LINK_LIBRARY_DEPEND = $(othersrc)291 TOOL_VCC1 20_LINK_LIBRARY_DEPORD =292 TOOL_VCC1 20_LINK_LIBRARY_OUTPUT = $(outbase).rsp293 TOOL_VCC1 20_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb294 define TOOL_VCC1 20_LINK_LIBRARY_CMDS348 TOOL_VCC141_LINK_LIBRARY_DEPEND = $(othersrc) 349 TOOL_VCC141_LINK_LIBRARY_DEPORD = 350 TOOL_VCC141_LINK_LIBRARY_OUTPUT = $(outbase).rsp 351 TOOL_VCC141_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb 352 define TOOL_VCC141_LINK_LIBRARY_CMDS 295 353 $(QUIET)$(APPEND) -tn $(outbase).rsp \ 296 $(foreach arg,\ 297 $(subst /,\\,$(objs) \ 298 $(filter-out %.def,$(othersrc))) \ 299 $(addprefix /DEF:,$(filter %.def,$(othersrc))) \ 300 ,\"$(arg)\") 301 $(QUIET)$(TOOL_VCC120_AR) $(flags) /OUT:$(out) @$(outbase).rsp 354 $(qforeachfile u,arg, $(objs) $(filter-out %.def,$(othersrc)),$(quote-sh "$(subst /,\,$(arg))")) \ 355 $(qforeachfile u,arg, $(filter %.def,$(othersrc)),$(quote-sh "/DEF:$(subst /,\,$(arg))")) 356 $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_AR) $(flags) /OUT:$(out) @$(outbase).rsp 302 357 endef 303 358 … … 317 372 # @param $(outbase) Output basename (full). Use this for list files and such. 318 373 # 319 TOOL_VCC1 20_LINK_PROGRAM_DEPEND = $(foreachlib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)320 TOOL_VCC1 20_LINK_PROGRAM_DEPORD =321 TOOL_VCC1 20_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp322 TOOL_VCC1 20_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest323 TOOL_VCC1 20_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb324 TOOL_VCC1 20_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb325 define TOOL_VCC1 20_LINK_PROGRAM_CMDS374 TOOL_VCC141_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc) 375 TOOL_VCC141_LINK_PROGRAM_DEPORD = 376 TOOL_VCC141_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp 377 TOOL_VCC141_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest 378 TOOL_VCC141_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb 379 TOOL_VCC141_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb 380 define TOOL_VCC141_LINK_PROGRAM_CMDS 326 381 $(QUIET)$(APPEND) -tn $(outbase).rsp \ 327 $(foreach arg,\ 328 $(subst /,\\,$(objs)) \ 329 $(subst /,\\,$(libs)) \ 330 ,\"$(arg)\") 331 $(QUIET)$(TOOL_VCC120_LD) $(flags) \ 382 $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))")) 383 $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \ 332 384 /OUT:$(out) \ 333 385 /MAPINFO:EXPORTS /INCREMENTAL:NO \ … … 335 387 $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \ 336 388 $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \ 337 $( foreach p,$(libpath), /LIBPATH:$(p)) \389 $(qaddprefix sh,/LIBPATH:,$(libpath)) \ 338 390 @$(outbase).rsp 339 ifndef TOOL_VCC1 20_NO_AUTO_MANIFEST391 ifndef TOOL_VCC141_NO_AUTO_MANIFEST 340 392 $(QUIET)$(TEST) -f $(out).manifest -- \ 341 $(TOOL_VCC1 20_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))393 $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out)) 342 394 endif 343 395 endef … … 358 410 # 359 411 # @param $(outbase) Output basename (full). Use this for list files and such. 360 TOOL_VCC1 20_LINK_DLL_DEPEND = $(objs) $(foreachlib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)361 TOOL_VCC1 20_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))362 TOOL_VCC1 20_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp363 TOOL_VCC1 20_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp364 TOOL_VCC1 20_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp365 TOOL_VCC1 20_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb366 TOOL_VCC1 20_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb367 define TOOL_VCC1 20_LINK_DLL_CMDS412 TOOL_VCC141_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc) 413 TOOL_VCC141_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB)) 414 TOOL_VCC141_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp 415 TOOL_VCC141_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp 416 TOOL_VCC141_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp 417 TOOL_VCC141_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb 418 TOOL_VCC141_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb 419 define TOOL_VCC141_LINK_DLL_CMDS 368 420 $(QUIET)$(APPEND) -tn $(outbase).rsp \ 369 $(foreach arg,\ 370 $(subst /,\\,$(objs)) \ 371 $(subst /,\\,$(libs)) \ 372 ,\"$(arg)\") 373 $(QUIET)$(TOOL_VCC120_LD) $(flags) \ 421 $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))")) 422 $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \ 374 423 /OUT:$(out) \ 375 424 /IMPLIB:$(outbase).lib \ … … 379 428 $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \ 380 429 $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \ 381 $( foreach p,$(libpath), /LIBPATH:$(p)) \430 $(qaddprefix sh,/LIBPATH:,$(libpath)) \ 382 431 @$(outbase).rsp 383 ifndef TOOL_VCC1 20_NO_AUTO_MANIFEST432 ifndef TOOL_VCC141_NO_AUTO_MANIFEST 384 433 $(QUIET)$(TEST) -f $(out).manifest -- \ 385 $(TOOL_VCC1 20_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'434 $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2' 386 435 endif 387 436 $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib 388 $(QUIET)$(CP) --changed - -ignore-non-existing $(outbase).exp $(outbase).lib $(PATH_STAGE_LIB)/437 $(QUIET)$(CP) --changed -v --ignore-non-existing $(outbase).exp $(outbase).lib $(PATH_STAGE_LIB)/ 389 438 $(eval _DIRS += $(PATH_STAGE_LIB)) 390 439 endef … … 405 454 # 406 455 # @param $(outbase) Output basename (full). Use this for list files and such. 407 TOOL_VCC1 20_LINK_SYSMOD_DEPEND = $(foreachlib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)408 TOOL_VCC1 20_LINK_SYSMOD_DEPORD =409 TOOL_VCC1 20_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest410 TOOL_VCC1 20_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp411 TOOL_VCC1 20_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb412 TOOL_VCC1 20_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb413 define TOOL_VCC1 20_LINK_SYSMOD_CMDS456 TOOL_VCC141_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc) 457 TOOL_VCC141_LINK_SYSMOD_DEPORD = 458 TOOL_VCC141_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest 459 TOOL_VCC141_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp 460 TOOL_VCC141_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb 461 TOOL_VCC141_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb 462 define TOOL_VCC141_LINK_SYSMOD_CMDS 414 463 $(QUIET)$(APPEND) -tn $(outbase).rsp \ 415 $(foreach arg,\ 416 $(subst /,\\,$(objs)) \ 417 $(subst /,\\,$(libs)) \ 418 ,\"$(arg)\") 419 $(QUIET)$(TOOL_VCC120_LD) $(flags) \ 464 $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))")) 465 $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \ 420 466 /OUT:$(out) \ 421 467 /MAPINFO:EXPORTS /INCREMENTAL:NO \ … … 423 469 $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \ 424 470 $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \ 425 $( foreach p,$(libpath), /LIBPATH:$(p)) \471 $(qaddprefix sh,/LIBPATH:,$(libpath)) \ 426 472 @$(outbase).rsp 427 ifndef TOOL_VCC1 20_NO_AUTO_MANIFEST473 ifndef TOOL_VCC141_NO_AUTO_MANIFEST 428 474 $(QUIET)$(TEST) -f $(out).manifest -- \ 429 $(TOOL_VCC1 20_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'475 $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2' 430 476 endif 431 477 endef
Note:
See TracChangeset
for help on using the changeset viewer.