VirtualBox

Changeset 3339 in kBuild


Ignore:
Timestamp:
May 19, 2020 12:45:34 PM (5 years ago)
Author:
bird
Message:

tools/VCC142*: Added Visual Sudio 2019 / MSC v19.2x tools based on the VCC141* ones.

Location:
trunk/kBuild/tools
Files:
3 copied

Legend:

Unmodified
Added
Removed
  • trunk/kBuild/tools/VCC142.kmk

    r3334 r3339  
    11# $Id$
    22## @file
    3 # kBuild Tool Config - Visual C++ 14.1 (aka Visual 2017 and MSC v19.10), targeting AMD64.
     3# kBuild Tool Config - Visual C++ 14.2 (aka Visual 2019 and MSC v19.20), default target.
    44#
    55
     
    3232#
    3333
    34 TOOL_VCC141 := Visual C++ 14.1 (aka Visual 2017 and MSC v19.1), targeting $(KBUILD_TARGET).
     34TOOL_VCC142 := Visual C++ 14.2 (aka Visual 2019 and MSC v19.20), targeting $(KBUILD_TARGET).
    3535
    3636ifndef INCLUDED_WIN_COMMON_KMK
     
    4141# Tool Specific Properties
    4242#
    43 ifndef PATH_TOOL_VCC141
    44  PATH_TOOL_VCC141 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.amd64/vcc/v14.1*/Tools/MSVC/14.1?.*)))
    45  ifeq ($(PATH_TOOL_VCC141),)
    46   PATH_TOOL_VCC141 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/vcc/v14.1*/Tools/MSVC/14.1?.*)))
    47  endif
    48  ifeq ($(PATH_TOOL_VCC141),)
    49   PATH_TOOL_VCC141 := $(PATH_TOOL_VCC141X86)
    50  endif
    51  ifeq ($(PATH_TOOL_VCC141),)
    52   PATH_TOOL_VCC141 := $(PATH_TOOL_VCC141)
    53  endif
    54  ifeq ($(PATH_TOOL_VCC141),)
    55   PATH_TOOL_VCC141 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/vcc/v14.1*/Tools/MSVC/14.1?.*)))
    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
     43ifndef PATH_TOOL_VCC142
     44 PATH_TOOL_VCC142 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.amd64/vcc/v14.2*/Tools/MSVC/14.2?.*)))
     45 ifeq ($(PATH_TOOL_VCC142),)
     46  PATH_TOOL_VCC142 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/vcc/v14.2*/Tools/MSVC/14.2?.*)))
     47 endif
     48 ifeq ($(PATH_TOOL_VCC142),)
     49  PATH_TOOL_VCC142 := $(PATH_TOOL_VCC142X86)
     50 endif
     51 ifeq ($(PATH_TOOL_VCC142),)
     52  PATH_TOOL_VCC142 := $(PATH_TOOL_VCC142)
     53 endif
     54 ifeq ($(PATH_TOOL_VCC142),)
     55  PATH_TOOL_VCC142 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/vcc/v14.2*/Tools/MSVC/14.2?.*)))
     56  ifeq ($(PATH_TOOL_VCC142),)
     57   PATH_TOOL_VCC142 := $(firstfile $(foreach ver,2019,$(foreachfile progfilesdir,$(WINCMN_PROGRAM_FILES_LIST)\
     58        , $(rsortfiles $(qwildcard ,$(progfilesdir)/Microsoft\ Visual\ Studio/$(ver)/BuildTools/VC/Tools/MSVC/14.2?.*)))))
     59   ifeq ($(PATH_TOOL_VCC142),)
     60    $(warning kBuild: PATH_TOOL_VCC142 cannot be determined!)
     61    PATH_TOOL_VCC142 := $(KBUILD_DEVTOOLS)/win.x86/vcc/v142
    6262   endif
    6363  endif
     
    6565else
    6666 # Resolve any fancy stuff once and for all.
    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))
     67 PATH_TOOL_VCC142 := $(PATH_TOOL_VCC142)
     68endif
     69
     70ifndef PATH_TOOL_VCC142_BASE_BIN
     71PATH_TOOL_VCC142_BASE_BIN := $(PATH_TOOL_VCC142)/bin
     72endif
     73ifndef PATH_TOOL_VCC142_HOST_BIN
     74PATH_TOOL_VCC142_HOST_BIN := $(PATH_TOOL_VCC142_BASE_BIN)/Host$(WINCMN_MAP_ARCH.$(KBUILD_HOST_ARCH))
     75endif
     76ifndef PATH_TOOL_VCC142_BIN
     77PATH_TOOL_VCC142_BIN      := $(PATH_TOOL_VCC142_HOST_BIN)/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))
     78endif
     79PATH_TOOL_VCC142_BIN_QSH  := $(requote sh,$(PATH_TOOL_VCC142_BIN))
    8080
    8181# A bunch of DLLs are only in the subdir matching the host one, so we need to add it to the PATH when cross compiling.
    82 ifndef PATH_TOOL_VCC141_HOST_DLL_BIN
    83 PATH_TOOL_VCC141_HOST_DLL_BIN := $(PATH_TOOL_VCC141_HOST_BIN)/$(WINCMN_MAP_ARCH.$(KBUILD_HOST_ARCH))
    84 endif
    85 ifndef PATH_TOOL_VCC141_DLL_BIN
    86  ifneq ($(PATH_TOOL_VCC141_HOST_DLL_BIN),$(PATH_TOOL_VCC141_BIN))
    87 PATH_TOOL_VCC141_DLL_BIN      := $(PATH_TOOL_VCC141_HOST_DLL_BIN)
    88  endif
    89 endif
    90 
    91 PATH_TOOL_VCC141_LIB.amd64         ?= $(PATH_TOOL_VCC141)/lib/x64
    92 PATH_TOOL_VCC141_LIB.arm32         ?= $(PATH_TOOL_VCC141)/lib/arm
    93 PATH_TOOL_VCC141_LIB.arm64         ?= $(PATH_TOOL_VCC141)/lib/arm64
    94 PATH_TOOL_VCC141_LIB.x86           ?= $(PATH_TOOL_VCC141)/lib/x86
    95 
    96 PATH_TOOL_VCC141_ONECORE_LIB.amd64 ?= $(PATH_TOOL_VCC141)/lib/onecore/x64
    97 PATH_TOOL_VCC141_ONECORE_LIB.arm32 ?= $(PATH_TOOL_VCC141)/lib/onecore/arm
    98 PATH_TOOL_VCC141_ONECORE_LIB.arm64 ?= $(PATH_TOOL_VCC141)/lib/onecore/arm64
    99 PATH_TOOL_VCC141_ONECORE_LIB.x86   ?= $(PATH_TOOL_VCC141)/lib/onecore/x86
    100 
    101 PATH_TOOL_VCC141_INC               ?= $(PATH_TOOL_VCC141)/include
    102 
    103 PATH_TOOL_VCC141_ATLMFC            ?= $(PATH_TOOL_VCC141)/atlmfc
    104 PATH_TOOL_VCC141_ATLMFC_INC        ?= $(PATH_TOOL_VCC141_ATLMFC)/include
    105 PATH_TOOL_VCC141_ATLMFC_LIB.x86    ?= $(PATH_TOOL_VCC141_ATLMFC)/lib/x86
    106 PATH_TOOL_VCC141_ATLMFC_LIB.amd64  ?= $(PATH_TOOL_VCC141_ATLMFC)/lib/x64
    107 
    108 TOOL_VCC141_CC      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/cl.exe
    109 TOOL_VCC141_CXX     ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/cl.exe
    110 TOOL_VCC141_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/ml64.exe
    111 #TOOL_VCC141_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/lib.exe - just an exec wrapper for the below
    112 TOOL_VCC141_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/link.exe /LIB
    113 TOOL_VCC141_LD      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/link.exe
    114 TOOL_VCC141_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/dumpbin.exe
    115 TOOL_VCC141_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/editbin.exe
    116 
    117 TOOL_VCC141_RC  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED)
    118 TOOL_VCC141_MT  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED)
    119 
    120 undefine TOOL_VCC141_USE_KSUBMIT # for now
    121 ifdef TOOL_VCC141_USE_KSUBMIT
     82ifndef PATH_TOOL_VCC142_HOST_DLL_BIN
     83PATH_TOOL_VCC142_HOST_DLL_BIN := $(PATH_TOOL_VCC142_HOST_BIN)/$(WINCMN_MAP_ARCH.$(KBUILD_HOST_ARCH))
     84endif
     85ifndef PATH_TOOL_VCC142_DLL_BIN
     86 ifneq ($(PATH_TOOL_VCC142_HOST_DLL_BIN),$(PATH_TOOL_VCC142_BIN))
     87PATH_TOOL_VCC142_DLL_BIN      := $(PATH_TOOL_VCC142_HOST_DLL_BIN)
     88 endif
     89endif
     90
     91PATH_TOOL_VCC142_LIB.amd64         ?= $(PATH_TOOL_VCC142)/lib/x64
     92PATH_TOOL_VCC142_LIB.arm32         ?= $(PATH_TOOL_VCC142)/lib/arm
     93PATH_TOOL_VCC142_LIB.arm64         ?= $(PATH_TOOL_VCC142)/lib/arm64
     94PATH_TOOL_VCC142_LIB.x86           ?= $(PATH_TOOL_VCC142)/lib/x86
     95
     96PATH_TOOL_VCC142_ONECORE_LIB.amd64 ?= $(PATH_TOOL_VCC142)/lib/onecore/x64
     97PATH_TOOL_VCC142_ONECORE_LIB.arm32 ?= $(PATH_TOOL_VCC142)/lib/onecore/arm
     98PATH_TOOL_VCC142_ONECORE_LIB.arm64 ?= $(PATH_TOOL_VCC142)/lib/onecore/arm64
     99PATH_TOOL_VCC142_ONECORE_LIB.x86   ?= $(PATH_TOOL_VCC142)/lib/onecore/x86
     100
     101PATH_TOOL_VCC142_INC               ?= $(PATH_TOOL_VCC142)/include
     102
     103PATH_TOOL_VCC142_ATLMFC            ?= $(PATH_TOOL_VCC142)/atlmfc
     104PATH_TOOL_VCC142_ATLMFC_INC        ?= $(PATH_TOOL_VCC142_ATLMFC)/include
     105PATH_TOOL_VCC142_ATLMFC_LIB.x86    ?= $(PATH_TOOL_VCC142_ATLMFC)/lib/x86
     106PATH_TOOL_VCC142_ATLMFC_LIB.amd64  ?= $(PATH_TOOL_VCC142_ATLMFC)/lib/x64
     107
     108TOOL_VCC142_CC      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142_BIN_QSH)/cl.exe
     109TOOL_VCC142_CXX     ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142_BIN_QSH)/cl.exe
     110TOOL_VCC142_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142_BIN_QSH)/ml64.exe
     111#TOOL_VCC142_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142_BIN_QSH)/lib.exe - just an exec wrapper for the below
     112TOOL_VCC142_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142_BIN_QSH)/link.exe /LIB
     113TOOL_VCC142_LD      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142_BIN_QSH)/link.exe
     114TOOL_VCC142_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142_BIN_QSH)/dumpbin.exe
     115TOOL_VCC142_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142_BIN_QSH)/editbin.exe
     116
     117TOOL_VCC142_RC  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC142_RC_CACHED)
     118TOOL_VCC142_MT  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
     119
     120undefine TOOL_VCC142_USE_KSUBMIT # for now
     121ifdef TOOL_VCC142_USE_KSUBMIT
    122122 ifeq ($(KBUILD_HOST),win)
    123   ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC141_BIN)),-3),64/)
    124    TOOL_VCC141_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
     123  ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC142_BIN)),-3),64/)
     124   TOOL_VCC142_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
    125125  else
    126    TOOL_VCC141_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
     126   TOOL_VCC142_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
    127127  endif
    128   ifdef PATH_TOOL_VCC141_DLL_BIN
    129    TOOL_VCC141_KSUBMIT := $(TOOL_VCC141_KSUBMIT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC141_DLL_BIN));"
     128  ifdef PATH_TOOL_VCC142_DLL_BIN
     129   TOOL_VCC142_KSUBMIT := $(TOOL_VCC142_KSUBMIT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC142_DLL_BIN));"
    130130  endif
    131   TOOL_VCC141_KSUBMIT_DD := $(TOOL_VCC141_KSUBMIT) --
    132  endif
    133 endif
    134 ifdef PATH_TOOL_VCC141_DLL_BIN
    135  TOOL_VCC141_SETUP_ENV   := $(REDIRECT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC141_DLL_BIN));" --$(SP)
    136  ifndef TOOL_VCC141_KSUBMIT_DD
    137   TOOL_VCC141_KSUBMIT_DD := $(TOOL_VCC141_SETUP_ENV)
     131  TOOL_VCC142_KSUBMIT_DD := $(TOOL_VCC142_KSUBMIT) --
     132 endif
     133endif
     134ifdef PATH_TOOL_VCC142_DLL_BIN
     135 TOOL_VCC142_SETUP_ENV   := $(REDIRECT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC142_DLL_BIN));" --$(SP)
     136 ifndef TOOL_VCC142_KSUBMIT_DD
     137  TOOL_VCC142_KSUBMIT_DD := $(TOOL_VCC142_SETUP_ENV)
    138138 endif
    139139endif
     
    141141
    142142## Helper for finding rc.exe and mt.exe in the SDK.
    143 TOOL_VCC141_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(qfirstfile sh,\
     143TOOL_VCC142_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(qfirstfile sh,\
    144144       $(if-expr defined(PATH_SDK_WINSDK10_BIN) , $(qwildcard ,$(PATH_SDK_WINSDK10_BIN)/$2)) \
    145145       $(if-expr defined(PATH_SDK_WINPSDK71_BIN), $(qwildcard ,$(PATH_SDK_WINPSDK71_BIN)/$2)) \
     
    148148        $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS_HST_ALT)/sdk/*/[Bb][Ii][Nn]/$2)) \
    149149        $1))
    150 TOOL_VCC141_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC141_FN_FIND_SDK_TOOL_SUB),)$($3)
     150TOOL_VCC142_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC142_FN_FIND_SDK_TOOL_SUB),)$($3)
    151151
    152152## Constructs the correct .pdb name (the name is lowercased).
    153153# @param    $(1)        Base name, no extention.
    154154# @param    $(2)        The extension.
    155 TOOL_VCC141_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
     155TOOL_VCC142_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
    156156
    157157#
     
    159159# doesn't necessarily match that of the compiler.
    160160#
    161 ifeq ($(tolower $(substr $(qdir u,$(PATH_TOOL_VCC141)), -12)),/tools/msvc/)
    162 PATH_TOOL_VCC141_REDIST ?= $(firstfile $(qwildcard ,$(substr $(qdir ,$(PATH_TOOL_VCC141)), 1, -12)/Redist/MSVC/14.1*))
     161ifeq ($(tolower $(substr $(qdir u,$(PATH_TOOL_VCC142)), -12)),/tools/msvc/)
     162PATH_TOOL_VCC142_REDIST ?= $(firstfile $(qwildcard ,$(substr $(qdir ,$(PATH_TOOL_VCC142)), 1, -12)/Redist/MSVC/14.2*))
    163163else
    164 PATH_TOOL_VCC141_REDIST ?= $(qabspath ,$(firstfile $(qwildcard ,\
    165         $(PATH_TOOL_VCC141)/Redist \
    166         $(PATH_TOOL_VCC141)/../Redist \
    167         $(PATH_TOOL_VCC141)/../../Redist \
    168         $(PATH_TOOL_VCC141)/../../../Redist \
    169         $(PATH_TOOL_VCC141)/../../../../Redist)))
    170 endif
    171 PATH_TOOL_VCC141_REDIST_DEBUG ?= $(PATH_TOOL_VCC141_REDIST)/debug_nonredist
    172 
    173 # Updates may add more msvcp140_[0-9].dll images as the product matures.
    174 # ASSUMES all platforms end up with the same number of DLLs.
    175 TOOL_VCC141_REDIST_CRT_SUBDIR       := Microsoft.VC141.CRT
    176 TOOL_VCC141_REDIST_DEBUG_CRT_SUBDIR := Microsoft.VC141.DebugCRT
    177 TOOL_VCC141_REDIST_CRT_DLLS    = vcruntime140.dll \
    178         $(sortfiles $(qnotdir ,$(qwildcard ,$(qaddprefix ,$(requote unq,$(PATH_TOOL_VCC141_REDIST)/),\
    179                 $(addsuffix /$(TOOL_VCC141_REDIST_CRT_SUBDIR)/vcruntime140_*.dll, x86 x64 arm arm64)))))
    180 TOOL_VCC141_REDIST_CONCRT_DLLS = concrt140.dll \
    181         $(sortfiles $(qnotdir ,$(qwildcard ,$(qaddprefix ,$(requote unq,$(PATH_TOOL_VCC141_REDIST)/),\
    182                 $(addsuffix /$(TOOL_VCC141_REDIST_CRT_SUBDIR)/concrt140_*.dll, x86 x64 arm arm64)))))
    183 TOOL_VCC141_REDIST_CPP_DLLS    = msvcp140.dll \
    184         $(sortfiles $(qnotdir ,$(qwildcard ,$(qaddprefix ,$(requote unq,$(PATH_TOOL_VCC141_REDIST)/),\
    185                 $(addsuffix /$(TOOL_VCC141_REDIST_CRT_SUBDIR)/msvcp140_*.dll, x86 x64 arm arm64)))))
    186 TOOL_VCC141_REDIST_WINRT_DLLS  = vccorlib140.dll \
    187         $(sortfiles $(qnotdir ,$(qwildcard ,$(qaddprefix ,$(requote unq,$(PATH_TOOL_VCC141_REDIST)/),\
    188                 $(addsuffix /$(TOOL_VCC141_REDIST_CRT_SUBDIR)/concrt140_*.dll, x86 x64 arm arm64)))))
    189 
    190 TOOL_VCC141_REDIST_CXXAMP_SUBDIR := Microsoft.VC141.CXXAMP
    191 TOOL_VCC141_REDIST_MFC_SUBDIR    := Microsoft.VC141.MFC
    192 TOOL_VCC141_REDIST_MFCLOC_SUBDIR := Microsoft.VC141.MFCLOC
    193 TOOL_VCC141_REDIST_OPENMP_SUBDIR := Microsoft.VC141.OpenMP
     164PATH_TOOL_VCC142_REDIST ?= $(qabspath ,$(firstfile $(qwildcard ,\
     165        $(PATH_TOOL_VCC142)/Redist \
     166        $(PATH_TOOL_VCC142)/../Redist \
     167        $(PATH_TOOL_VCC142)/../../Redist \
     168        $(PATH_TOOL_VCC142)/../../../Redist \
     169        $(PATH_TOOL_VCC142)/../../../../Redist)))
     170endif
     171PATH_TOOL_VCC142_REDIST_DEBUG ?= $(PATH_TOOL_VCC142_REDIST)/debug_nonredist
     172
     173## Updates may add more msvcp140_[0-9].dll images as the product matures.
     174# This helper locates them (can differ between archs).
     175# @param 1 Redist subdirectory.
     176# @param 2 The DLL basename (no suffix).
     177# @param 3 The VCC architecture name (for constructing the path).
     178FN_TOOL_VCC142_FIND_DLLS = $(2).dll \
     179        $(sortfiles $(qnotdir ,$(qwildcard ,$(PATH_TOOL_VCC142_REDIST)/$(3)/$(1)/$(2)_?.dll)))
     180
     181TOOL_VCC142_REDIST_CRT_SUBDIR       := Microsoft.VC142.CRT
     182TOOL_VCC142_REDIST_DEBUG_CRT_SUBDIR := Microsoft.VC142.DebugCRT
     183
     184TOOL_VCC142_REDIST_CRT_DLLS.x86      = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vcruntime140,x86)
     185TOOL_VCC142_REDIST_CRT_DLLS.amd64    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vcruntime140,x64)
     186TOOL_VCC142_REDIST_CRT_DLLS.arm32    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vcruntime140,arm)
     187TOOL_VCC142_REDIST_CRT_DLLS.arm64    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vcruntime140,arm64)
     188TOOL_VCC142_REDIST_CRT_DLLS          = $(TOOL_VCC142_REDIST_CRT_DLLS.$(KBUILD_TARGET_ARCH))
     189
     190TOOL_VCC142_REDIST_CONCRT_DLLS.x86   = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),concrt140,x86)
     191TOOL_VCC142_REDIST_CONCRT_DLLS.amd64 = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),concrt140,x64)
     192TOOL_VCC142_REDIST_CONCRT_DLLS.arm32 = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),concrt140,arm)
     193TOOL_VCC142_REDIST_CONCRT_DLLS.arm64 = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),concrt140,arm64)
     194TOOL_VCC142_REDIST_CONCRT_DLLS       = $(TOOL_VCC142_REDIST_CONCRT_DLLS.$(KBUILD_TARGET_ARCH))
     195
     196TOOL_VCC142_REDIST_CPP_DLLS.x86      = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),msvcp140,x86)
     197TOOL_VCC142_REDIST_CPP_DLLS.amd64    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),msvcp140,x64)
     198TOOL_VCC142_REDIST_CPP_DLLS.arm32    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),msvcp140,arm)
     199TOOL_VCC142_REDIST_CPP_DLLS.arm64    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),msvcp140,arm64)
     200TOOL_VCC142_REDIST_CPP_DLLS          = $(TOOL_VCC142_REDIST_CPP_DLLS.$(KBUILD_TARGET_ARCH))
     201
     202TOOL_VCC142_REDIST_WINRT_DLLS.x86    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vccorlib140,x86)
     203TOOL_VCC142_REDIST_WINRT_DLLS.amd64  = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vccorlib140,x64)
     204TOOL_VCC142_REDIST_WINRT_DLLS.arm32  = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vccorlib140,arm)
     205TOOL_VCC142_REDIST_WINRT_DLLS.arm64  = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vccorlib140,arm64)
     206TOOL_VCC142_REDIST_WINRT_DLLS        = $(TOOL_VCC142_REDIST_WINRT_DLLS.$(KBUILD_TARGET_ARCH))
     207
     208TOOL_VCC142_REDIST_CXXAMP_SUBDIR := Microsoft.VC142.CXXAMP
     209TOOL_VCC142_REDIST_MFC_SUBDIR    := Microsoft.VC142.MFC
     210TOOL_VCC142_REDIST_MFCLOC_SUBDIR := Microsoft.VC142.MFCLOC
     211TOOL_VCC142_REDIST_OPENMP_SUBDIR := Microsoft.VC142.OpenMP
    194212
    195213
     
    197215# Properties used by kBuild
    198216#
    199 TOOL_VCC141_COBJSUFF         ?= .obj
    200 TOOL_VCC141_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
    201 TOOL_VCC141_CFLAGS.debug     ?=
    202 TOOL_VCC141_CFLAGS.dbgopt    ?= -O2
    203 TOOL_VCC141_CFLAGS.release   ?= -O2
    204 TOOL_VCC141_CFLAGS.profile   ?= -O2
    205 TOOL_VCC141_CINCS            ?= $(PATH_TOOL_VCC141_INC)
    206 TOOL_VCC141_CDEFS            ?=
    207 
    208 TOOL_VCC141_CXXOBJSUFF       ?= .obj
    209 TOOL_VCC141_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
    210 TOOL_VCC141_CXXFLAGS.debug   ?=
    211 TOOL_VCC141_CXXFLAGS.dbgopt  ?= -O2
    212 TOOL_VCC141_CXXFLAGS.release ?= -O2
    213 TOOL_VCC141_CXXFLAGS.profile ?= -O2
    214 TOOL_VCC141_CXXINCS          ?= $(PATH_TOOL_VCC141_INC) $(PATH_TOOL_VCC141_ATLMFC_INC)
    215 TOOL_VCC141_CXXDEFS          ?=
    216 
    217 TOOL_VCC141_ASOBJSUFF        ?= .obj
    218 
    219 TOOL_VCC141_RCOBJSUFF        ?= .res
    220 TOOL_VCC141_RCINCS           ?= $(PATH_TOOL_VCC141_INC) $(PATH_TOOL_VCC141_ATLMFC_INC)
    221 
    222 TOOL_VCC141_ARFLAGS          ?= -nologo
    223 TOOL_VCC141_ARFLAGS.x86      ?= -machine:x86
    224 TOOL_VCC141_ARFLAGS.amd64    ?= -machine:amd64
    225 TOOL_VCC141_ARFLAGS.arm32    ?= -machine:arm
    226 TOOL_VCC141_ARLIBSUFF        ?= .lib
    227 
    228 TOOL_VCC141_LDFLAGS          ?= -nologo
    229 TOOL_VCC141_LDFLAGS.x86      ?= -machine:x86
    230 TOOL_VCC141_LDFLAGS.amd64    ?= -machine:amd64
    231 TOOL_VCC141_LDFLAGS.arm32    ?= -machine:arm
    232 TOOL_VCC141_LDFLAGS.debug    ?= -debug
    233 TOOL_VCC141_LDFLAGS.dbgopt   ?= -debug
    234 TOOL_VCC141_LDFLAGS.profile  ?= -debug
    235 TOOL_VCC141_LDFLAGS.release  ?=
     217TOOL_VCC142_COBJSUFF         ?= .obj
     218TOOL_VCC142_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
     219TOOL_VCC142_CFLAGS.debug     ?=
     220TOOL_VCC142_CFLAGS.dbgopt    ?= -O2
     221TOOL_VCC142_CFLAGS.release   ?= -O2
     222TOOL_VCC142_CFLAGS.profile   ?= -O2
     223TOOL_VCC142_CINCS            ?= $(PATH_TOOL_VCC142_INC)
     224TOOL_VCC142_CDEFS            ?=
     225
     226TOOL_VCC142_CXXOBJSUFF       ?= .obj
     227TOOL_VCC142_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
     228TOOL_VCC142_CXXFLAGS.debug   ?=
     229TOOL_VCC142_CXXFLAGS.dbgopt  ?= -O2
     230TOOL_VCC142_CXXFLAGS.release ?= -O2
     231TOOL_VCC142_CXXFLAGS.profile ?= -O2
     232TOOL_VCC142_CXXINCS          ?= $(PATH_TOOL_VCC142_INC) $(PATH_TOOL_VCC142_ATLMFC_INC)
     233TOOL_VCC142_CXXDEFS          ?=
     234
     235TOOL_VCC142_ASOBJSUFF        ?= .obj
     236
     237TOOL_VCC142_RCOBJSUFF        ?= .res
     238TOOL_VCC142_RCINCS           ?= $(PATH_TOOL_VCC142_INC) $(PATH_TOOL_VCC142_ATLMFC_INC)
     239
     240TOOL_VCC142_ARFLAGS          ?= -nologo
     241TOOL_VCC142_ARFLAGS.x86      ?= -machine:x86
     242TOOL_VCC142_ARFLAGS.amd64    ?= -machine:amd64
     243TOOL_VCC142_ARFLAGS.arm32    ?= -machine:arm
     244TOOL_VCC142_ARLIBSUFF        ?= .lib
     245
     246TOOL_VCC142_LDFLAGS          ?= -nologo
     247TOOL_VCC142_LDFLAGS.x86      ?= -machine:x86
     248TOOL_VCC142_LDFLAGS.amd64    ?= -machine:amd64
     249TOOL_VCC142_LDFLAGS.arm32    ?= -machine:arm
     250TOOL_VCC142_LDFLAGS.debug    ?= -debug
     251TOOL_VCC142_LDFLAGS.dbgopt   ?= -debug
     252TOOL_VCC142_LDFLAGS.profile  ?= -debug
     253TOOL_VCC142_LDFLAGS.release  ?=
    236254
    237255
     
    250268# @param    $(outbase)  Output basename (full). Use this for list files and such.
    251269# @param    $(objsuff)  Object suffix.
    252 TOOL_VCC141_COMPILE_C_DEPEND =
    253 TOOL_VCC141_COMPILE_C_DEPORD =
    254 TOOL_VCC141_COMPILE_C_OUTPUT =
    255 TOOL_VCC141_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb)
    256 ifdef TOOL_VCC141_KSUBMIT
    257  TOOL_VCC141_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
    258  define TOOL_VCC141_COMPILE_C_CMDS
    259         $(QUIET)$(TOOL_VCC141_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    260                 -- $(TOOL_VCC141_CC) -c\
     270TOOL_VCC142_COMPILE_C_DEPEND =
     271TOOL_VCC142_COMPILE_C_DEPORD =
     272TOOL_VCC142_COMPILE_C_OUTPUT =
     273TOOL_VCC142_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC142_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC142_PDB, $(outbase)-obj,idb)
     274ifdef TOOL_VCC142_KSUBMIT
     275 TOOL_VCC142_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
     276 define TOOL_VCC142_COMPILE_C_CMDS
     277        $(QUIET)$(TOOL_VCC142_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     278                -- $(TOOL_VCC142_CC) -c\
    261279                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    262280                -Fd$(outbase)-obj.pdb \
     
    265283 endef
    266284else
    267  define TOOL_VCC141_COMPILE_C_CMDS
    268         $(QUIET)$(TOOL_VCC141_SETUP_ENV) $(TOOL_VCC141_CC) -c\
     285 define TOOL_VCC142_COMPILE_C_CMDS
     286        $(QUIET)$(TOOL_VCC142_SETUP_ENV) $(TOOL_VCC142_CC) -c\
    269287                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    270288                -Fd$(outbase)-obj.pdb \
     
    273291        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    274292 endef
    275 endif # !TOOL_VCC141_KSUBMIT
     293endif # !TOOL_VCC142_KSUBMIT
    276294
    277295
     
    289307# @param    $(outbase)  Output basename (full). Use this for list files and such.
    290308# @param    $(objsuff)  Object suffix.
    291 TOOL_VCC141_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    292 TOOL_VCC141_COMPILE_CXX_DEPORD =
    293 TOOL_VCC141_COMPILE_CXX_OUTPUT =
    294 TOOL_VCC141_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
    295         ,,$(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb))
    296 ifdef TOOL_VCC141_KSUBMIT
    297  TOOL_VCC141_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
    298  define TOOL_VCC141_COMPILE_CXX_CMDS
    299         $(QUIET)$(TOOL_VCC141_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    300                 -- $(TOOL_VCC141_CXX) -c\
     309TOOL_VCC142_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
     310TOOL_VCC142_COMPILE_CXX_DEPORD =
     311TOOL_VCC142_COMPILE_CXX_OUTPUT =
     312TOOL_VCC142_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     313        ,,$(call TOOL_VCC142_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC142_PDB, $(outbase)-obj,idb))
     314ifdef TOOL_VCC142_KSUBMIT
     315 TOOL_VCC142_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
     316 define TOOL_VCC142_COMPILE_CXX_CMDS
     317        $(QUIET)$(TOOL_VCC142_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     318                -- $(TOOL_VCC142_CXX) -c\
    301319                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    302320                $(if-expr defined($(target)_PCH_HDR)\
     
    307325 endef
    308326else
    309  define TOOL_VCC141_COMPILE_CXX_CMDS
    310         $(QUIET)$(TOOL_VCC141_SETUP_ENV) $(TOOL_VCC141_CXX) -c\
     327 define TOOL_VCC142_COMPILE_CXX_CMDS
     328        $(QUIET)$(TOOL_VCC142_SETUP_ENV) $(TOOL_VCC142_CXX) -c\
    311329                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    312330                $(if-expr defined($(target)_PCH_HDR)\
     
    317335        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    318336 endef
    319 endif # !TOOL_VCC141_KSUBMIT
     337endif # !TOOL_VCC142_KSUBMIT
    320338
    321339
     
    326344# related _1_VCC_PCH_FILE and add -Yc.
    327345#
    328 TOOL_VCC141-PCH                         := Helper for creating precompiled header using CXX handling.
    329 TOOL_VCC141-PCH_EXTENDS                 := VCC141
    330 TOOL_VCC141-PCH_CXXOBJSUFF              := .obj
    331 TOOL_VCC141-PCH_CXXINCS                  = $(TOOL_VCC141_CXXINCS)
    332 TOOL_VCC141-PCH_CXXFLAGS                 = $(TOOL_VCC141_CXXFLAGS) -FS
    333 TOOL_VCC141-PCH_CXXFLAGS.debug           = $(TOOL_VCC141_CXXFLAGS.debug)
    334 TOOL_VCC141-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC141_CXXFLAGS.dbgopt)
    335 TOOL_VCC141-PCH_CXXFLAGS.release         = $(TOOL_VCC141_CXXFLAGS.release)
    336 TOOL_VCC141-PCH_CXXFLAGS.profile         = $(TOOL_VCC141_CXXFLAGS.profile)
    337 TOOL_VCC141-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
    338 TOOL_VCC141-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
    339 TOOL_VCC141-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    340 TOOL_VCC141-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
    341 ifdef TOOL_VCC141_KSUBMIT
    342  define TOOL_VCC141-PCH_COMPILE_CXX_CMDS
     346TOOL_VCC142-PCH                         := Helper for creating precompiled header using CXX handling.
     347TOOL_VCC142-PCH_EXTENDS                 := VCC142
     348TOOL_VCC142-PCH_CXXOBJSUFF              := .obj
     349TOOL_VCC142-PCH_CXXINCS                  = $(TOOL_VCC142_CXXINCS)
     350TOOL_VCC142-PCH_CXXFLAGS                 = $(TOOL_VCC142_CXXFLAGS) -FS
     351TOOL_VCC142-PCH_CXXFLAGS.debug           = $(TOOL_VCC142_CXXFLAGS.debug)
     352TOOL_VCC142-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC142_CXXFLAGS.dbgopt)
     353TOOL_VCC142-PCH_CXXFLAGS.release         = $(TOOL_VCC142_CXXFLAGS.release)
     354TOOL_VCC142-PCH_CXXFLAGS.profile         = $(TOOL_VCC142_CXXFLAGS.profile)
     355TOOL_VCC142-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     356TOOL_VCC142-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     357TOOL_VCC142-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     358TOOL_VCC142-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     359ifdef TOOL_VCC142_KSUBMIT
     360 define TOOL_VCC142-PCH_COMPILE_CXX_CMDS
    343361        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    344         $(QUIET)$(TOOL_VCC141_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
    345                 -- $(TOOL_VCC141_CXX) -c -Yc\
     362        $(QUIET)$(TOOL_VCC142_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     363                -- $(TOOL_VCC142_CXX) -c -Yc\
    346364                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    347365               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    352370 endef
    353371else
    354  define TOOL_VCC141-PCH_COMPILE_CXX_CMDS
     372 define TOOL_VCC142-PCH_COMPILE_CXX_CMDS
    355373        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    356         $(QUIET)$(TOOL_VCC141_SETUP_ENV) $(TOOL_VCC141_CXX) -c -Yc\
     374        $(QUIET)$(TOOL_VCC142_SETUP_ENV) $(TOOL_VCC142_CXX) -c -Yc\
    357375                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    358376               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    364382
    365383 endef
    366 endif # !TOOL_VCC141_KSUBMIT
     384endif # !TOOL_VCC142_KSUBMIT
    367385
    368386
     
    382400# @param    $(outbase)  Output basename (full). Use this for list files and such.
    383401# @param    $(objsuff)  Object suffix.
    384 TOOL_VCC141_COMPILE_RC_DEPEND =
    385 TOOL_VCC141_COMPILE_RC_DEPORD =
    386 TOOL_VCC141_COMPILE_RC_OUTPUT =
    387 define TOOL_VCC141_COMPILE_RC_CMDS
    388         $(QUIET)$(TOOL_VCC141_RC) \
     402TOOL_VCC142_COMPILE_RC_DEPEND =
     403TOOL_VCC142_COMPILE_RC_DEPORD =
     404TOOL_VCC142_COMPILE_RC_OUTPUT =
     405define TOOL_VCC142_COMPILE_RC_CMDS
     406        $(QUIET)$(TOOL_VCC142_RC) \
    389407                $(flags) $(qaddprefix sh,/i, $(subst /,\\,$(incs))) $(qaddprefix sh,/d, $(defs))\
    390408                /fo$(obj)\
     
    403421# @param    $(outbase)  Output basename (full). Use this for list files and such.
    404422#
    405 TOOL_VCC141_LINK_LIBRARY_DEPEND = $(othersrc)
    406 TOOL_VCC141_LINK_LIBRARY_DEPORD =
    407 TOOL_VCC141_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    408 TOOL_VCC141_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
    409 define TOOL_VCC141_LINK_LIBRARY_CMDS
     423TOOL_VCC142_LINK_LIBRARY_DEPEND = $(othersrc)
     424TOOL_VCC142_LINK_LIBRARY_DEPORD =
     425TOOL_VCC142_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     426TOOL_VCC142_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
     427define TOOL_VCC142_LINK_LIBRARY_CMDS
    410428        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    411429                $(qforeachfile u,arg, $(objs) $(filter-out %.def,$(othersrc)),$(quote-sh "$(subst /,\,$(arg))")) \
    412430                $(qforeachfile u,arg, $(filter %.def,$(othersrc)),$(quote-sh "/DEF:$(subst /,\,$(arg))"))
    413         $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_AR) $(flags) /OUT:$(out) @$(outbase).rsp
     431        $(QUIET)$(TOOL_VCC142_KSUBMIT_DD) $(TOOL_VCC142_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    414432endef
    415433
     
    429447# @param    $(outbase)      Output basename (full). Use this for list files and such.
    430448#
    431 TOOL_VCC141_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    432 TOOL_VCC141_LINK_PROGRAM_DEPORD =
    433 TOOL_VCC141_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    434 TOOL_VCC141_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    435 TOOL_VCC141_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
    436 TOOL_VCC141_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    437 define TOOL_VCC141_LINK_PROGRAM_CMDS
     449TOOL_VCC142_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     450TOOL_VCC142_LINK_PROGRAM_DEPORD =
     451TOOL_VCC142_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     452TOOL_VCC142_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     453TOOL_VCC142_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
     454TOOL_VCC142_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     455define TOOL_VCC142_LINK_PROGRAM_CMDS
    438456        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    439457                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    440         $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \
     458        $(QUIET)$(TOOL_VCC142_KSUBMIT_DD) $(TOOL_VCC142_LD) $(flags) \
    441459                /OUT:$(out) \
    442460                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    446464                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    447465                @$(outbase).rsp
    448 ifndef TOOL_VCC141_NO_AUTO_MANIFEST
     466ifndef TOOL_VCC142_NO_AUTO_MANIFEST
    449467        $(QUIET)$(TEST) -f $(out).manifest -- \
    450                 $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
     468                $(TOOL_VCC142_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
    451469endif
    452470endef
     
    467485#
    468486# @param    $(outbase)  Output basename (full). Use this for list files and such.
    469 TOOL_VCC141_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    470 TOOL_VCC141_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
    471 TOOL_VCC141_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
    472 TOOL_VCC141_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
    473 TOOL_VCC141_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
    474 TOOL_VCC141_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
    475 TOOL_VCC141_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    476 define TOOL_VCC141_LINK_DLL_CMDS
     487TOOL_VCC142_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     488TOOL_VCC142_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
     489TOOL_VCC142_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
     490TOOL_VCC142_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
     491TOOL_VCC142_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
     492TOOL_VCC142_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
     493TOOL_VCC142_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     494define TOOL_VCC142_LINK_DLL_CMDS
    477495        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    478496                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    479         $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \
     497        $(QUIET)$(TOOL_VCC142_KSUBMIT_DD) $(TOOL_VCC142_LD) $(flags) \
    480498                /OUT:$(out) \
    481499                /IMPLIB:$(outbase).lib \
     
    487505                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    488506                @$(outbase).rsp
    489 ifndef TOOL_VCC141_NO_AUTO_MANIFEST
     507ifndef TOOL_VCC142_NO_AUTO_MANIFEST
    490508        $(QUIET)$(TEST) -f $(out).manifest -- \
    491                 $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     509                $(TOOL_VCC142_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    492510endif
    493511        $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib
     
    511529#
    512530# @param    $(outbase)  Output basename (full). Use this for list files and such.
    513 TOOL_VCC141_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    514 TOOL_VCC141_LINK_SYSMOD_DEPORD =
    515 TOOL_VCC141_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    516 TOOL_VCC141_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    517 TOOL_VCC141_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
    518 TOOL_VCC141_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    519 define TOOL_VCC141_LINK_SYSMOD_CMDS
     531TOOL_VCC142_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     532TOOL_VCC142_LINK_SYSMOD_DEPORD =
     533TOOL_VCC142_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     534TOOL_VCC142_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     535TOOL_VCC142_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
     536TOOL_VCC142_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     537define TOOL_VCC142_LINK_SYSMOD_CMDS
    520538        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    521539                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    522         $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \
     540        $(QUIET)$(TOOL_VCC142_KSUBMIT_DD) $(TOOL_VCC142_LD) $(flags) \
    523541                /OUT:$(out) \
    524542                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    528546                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    529547                @$(outbase).rsp
    530 ifndef TOOL_VCC141_NO_AUTO_MANIFEST
     548ifndef TOOL_VCC142_NO_AUTO_MANIFEST
    531549        $(QUIET)$(TEST) -f $(out).manifest -- \
    532                 $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     550                $(TOOL_VCC142_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    533551endif
    534552endef
  • trunk/kBuild/tools/VCC142AMD64.kmk

    r3332 r3339  
    11# $Id$
    22## @file
    3 # kBuild Tool Config - Visual C++ 14.1 (aka Visual 2017 and MSC v19.10), targeting AMD64.
     3# kBuild Tool Config - Visual C++ 14.2 (aka Visual 2019 and MSC v19.20), targeting AMD64.
    44#
    55
     
    3232#
    3333
    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
     34ifndef TOOL_VCC142
     35 include $(KBUILD_PATH)/tools/VCC142.kmk
     36endif
     37
     38TOOL_VCC142AMD64 := Visual C++ 14.2 (aka Visual 2019 and MSC v19.20), targeting AMD64
    3939
    4040#
    4141# Tool Specific Properties
    4242#
    43 ifndef PATH_TOOL_VCC141AMD64
    44  PATH_TOOL_VCC141AMD64 := $(PATH_TOOL_VCC141)
     43ifndef PATH_TOOL_VCC142AMD64
     44 PATH_TOOL_VCC142AMD64 := $(PATH_TOOL_VCC142)
    4545else
    4646 # Resolve any fancy stuff once and for all.
    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
     47 PATH_TOOL_VCC142AMD64 := $(PATH_TOOL_VCC142AMD64)
     48endif
     49
     50ifndef PATH_TOOL_VCC142AMD64_BIN
     51PATH_TOOL_VCC142AMD64_BIN     := $(PATH_TOOL_VCC142_HOST_BIN)/x64
    5252else
    53 PATH_TOOL_VCC141AMD64_BIN     := $(PATH_TOOL_VCC141_BIN)
    54 endif
    55 PATH_TOOL_VCC141AMD64_BIN_QSH := $(requote sh,$(PATH_TOOL_VCC141AMD64_BIN))
     53PATH_TOOL_VCC142AMD64_BIN     := $(PATH_TOOL_VCC142_BIN)
     54endif
     55PATH_TOOL_VCC142AMD64_BIN_QSH := $(requote sh,$(PATH_TOOL_VCC142AMD64_BIN))
    5656
    5757# A bunch of DLLs are only in the subdir matching the host one, so we need to add it to the PATH when cross compiling.
    58 ifndef PATH_TOOL_VCC141AMD64_DLL_BIN
    59  ifneq ($(PATH_TOOL_VCC141_HOST_DLL_BIN),$(PATH_TOOL_VCC141AMD64_BIN))
    60 PATH_TOOL_VCC141AMD64_DLL_BIN := $(PATH_TOOL_VCC141_HOST_DLL_BIN)
     58ifndef PATH_TOOL_VCC142AMD64_DLL_BIN
     59 ifneq ($(PATH_TOOL_VCC142_HOST_DLL_BIN),$(PATH_TOOL_VCC142AMD64_BIN))
     60PATH_TOOL_VCC142AMD64_DLL_BIN := $(PATH_TOOL_VCC142_HOST_DLL_BIN)
    6161 endif
    6262endif
    6363
    64 ifndef PATH_TOOL_VCC141AMD64_LIB
    65 PATH_TOOL_VCC141AMD64_LIB     := $(PATH_TOOL_VCC141_LIB.amd64)
    66 endif
    67 ifndef PATH_TOOL_VCC141_ONECORE_LIB
    68 PATH_TOOL_VCC141_ONECORE_LIB  := $(PATH_TOOL_VCC141_ONECORE_LIB.amd64)
    69 endif
    70 
    71 ifndef PATH_TOOL_VCC141AMD64_INC
    72 PATH_TOOL_VCC141AMD64_INC     := $(PATH_TOOL_VCC141_INC)
    73 endif
    74 
    75 ifndef PATH_TOOL_VCC141AMD64_ATLMFC_INC
    76 PATH_TOOL_VCC141AMD64_ATLMFC_INC := $(PATH_TOOL_VCC141_ATLMFC_INC.amd64)
    77 endif
    78 ifndef PATH_TOOL_VCC141AMD64_ATLMFC_LIB
    79 PATH_TOOL_VCC141AMD64_ATLMFC_LIB := $(PATH_TOOL_VCC141_ATLMFC_LIB.amd64)
    80 endif
    81 
    82 TOOL_VCC141AMD64_CC      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/cl.exe
    83 TOOL_VCC141AMD64_CXX     ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/cl.exe
    84 TOOL_VCC141AMD64_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/ml64.exe
    85 #TOOL_VCC141AMD64_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/lib.exe - just an exec wrapper for the below
    86 TOOL_VCC141AMD64_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/link.exe /LIB
    87 TOOL_VCC141AMD64_LD      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/link.exe
    88 TOOL_VCC141AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/dumpbin.exe
    89 TOOL_VCC141AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/editbin.exe
    90 
    91 TOOL_VCC141AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED)
    92 TOOL_VCC141AMD64_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED)
    93 
    94 undefine TOOL_VCC141AMD64_USE_KSUBMIT # for now
    95 ifdef TOOL_VCC141AMD64_USE_KSUBMIT
     64ifndef PATH_TOOL_VCC142AMD64_LIB
     65PATH_TOOL_VCC142AMD64_LIB     := $(PATH_TOOL_VCC142_LIB.amd64)
     66endif
     67ifndef PATH_TOOL_VCC142_ONECORE_LIB
     68PATH_TOOL_VCC142_ONECORE_LIB  := $(PATH_TOOL_VCC142_ONECORE_LIB.amd64)
     69endif
     70
     71ifndef PATH_TOOL_VCC142AMD64_INC
     72PATH_TOOL_VCC142AMD64_INC     := $(PATH_TOOL_VCC142_INC)
     73endif
     74
     75ifndef PATH_TOOL_VCC142AMD64_ATLMFC_INC
     76PATH_TOOL_VCC142AMD64_ATLMFC_INC := $(PATH_TOOL_VCC142_ATLMFC_INC.amd64)
     77endif
     78ifndef PATH_TOOL_VCC142AMD64_ATLMFC_LIB
     79PATH_TOOL_VCC142AMD64_ATLMFC_LIB := $(PATH_TOOL_VCC142_ATLMFC_LIB.amd64)
     80endif
     81
     82TOOL_VCC142AMD64_CC      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142AMD64_BIN_QSH)/cl.exe
     83TOOL_VCC142AMD64_CXX     ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142AMD64_BIN_QSH)/cl.exe
     84TOOL_VCC142AMD64_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142AMD64_BIN_QSH)/ml64.exe
     85#TOOL_VCC142AMD64_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142AMD64_BIN_QSH)/lib.exe - just an exec wrapper for the below
     86TOOL_VCC142AMD64_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142AMD64_BIN_QSH)/link.exe /LIB
     87TOOL_VCC142AMD64_LD      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142AMD64_BIN_QSH)/link.exe
     88TOOL_VCC142AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142AMD64_BIN_QSH)/dumpbin.exe
     89TOOL_VCC142AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142AMD64_BIN_QSH)/editbin.exe
     90
     91TOOL_VCC142AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC142_RC_CACHED)
     92TOOL_VCC142AMD64_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
     93
     94undefine TOOL_VCC142AMD64_USE_KSUBMIT # for now
     95ifdef TOOL_VCC142AMD64_USE_KSUBMIT
    9696 ifeq ($(KBUILD_HOST),win)
    97   ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC141AMD64_BIN)),-3),64/)
    98    TOOL_VCC141AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
     97  ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC142AMD64_BIN)),-3),64/)
     98   TOOL_VCC142AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
    9999  else
    100    TOOL_VCC141AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
     100   TOOL_VCC142AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
    101101  endif
    102   ifdef PATH_TOOL_VCC141AMD64_DLL_BIN
    103    TOOL_VCC141AMD64_KSUBMIT := $(TOOL_VCC141AMD64_KSUBMIT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC141AMD64_DLL_BIN));"
     102  ifdef PATH_TOOL_VCC142AMD64_DLL_BIN
     103   TOOL_VCC142AMD64_KSUBMIT := $(TOOL_VCC142AMD64_KSUBMIT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC142AMD64_DLL_BIN));"
    104104  endif
    105   TOOL_VCC141AMD64_KSUBMIT_DD := $(TOOL_VCC141AMD64_KSUBMIT) --
     105  TOOL_VCC142AMD64_KSUBMIT_DD := $(TOOL_VCC142AMD64_KSUBMIT) --
    106106 endif
    107107endif
    108 ifdef PATH_TOOL_VCC141AMD64_DLL_BIN
    109  TOOL_VCC141AMD64_SETUP_ENV   := $(REDIRECT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC141AMD64_DLL_BIN));" --$(SP)
    110  ifndef TOOL_VCC141AMD64_KSUBMIT_DD
    111   TOOL_VCC141AMD64_KSUBMIT_DD := $(TOOL_VCC141AMD64_SETUP_ENV)
     108ifdef PATH_TOOL_VCC142AMD64_DLL_BIN
     109 TOOL_VCC142AMD64_SETUP_ENV   := $(REDIRECT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC142AMD64_DLL_BIN));" --$(SP)
     110 ifndef TOOL_VCC142AMD64_KSUBMIT_DD
     111  TOOL_VCC142AMD64_KSUBMIT_DD := $(TOOL_VCC142AMD64_SETUP_ENV)
    112112 endif
    113113endif
    114114
    115 # Redist (more stuff in VCC141.kmk).
    116 PATH_TOOL_VCC141AMD64_REDIST           ?= $(PATH_TOOL_VCC141_REDIST)/x64
    117 PATH_TOOL_VCC141AMD64_REDIST_CRT        = $(PATH_TOOL_VCC141AMD64_REDIST)/$(TOOL_VCC141_REDIST_CRT_SUBDIR)
    118 PATH_TOOL_VCC141AMD64_REDIST_DEBUG     ?= $(PATH_TOOL_VCC141_REDIST_DEBUG)/x64
    119 PATH_TOOL_VCC141AMD64_REDIST_DEBUG_CRT  = $(PATH_TOOL_VCC141AMD64_REDIST_DEBUG)/$(TOOL_VCC141_REDIST_CRT_SUBDIR)
     115# Redist (more stuff in VCC142.kmk).
     116PATH_TOOL_VCC142AMD64_REDIST           ?= $(PATH_TOOL_VCC142_REDIST)/x64
     117PATH_TOOL_VCC142AMD64_REDIST_CRT        = $(PATH_TOOL_VCC142AMD64_REDIST)/$(TOOL_VCC142_REDIST_CRT_SUBDIR)
     118PATH_TOOL_VCC142AMD64_REDIST_DEBUG     ?= $(PATH_TOOL_VCC142_REDIST_DEBUG)/x64
     119PATH_TOOL_VCC142AMD64_REDIST_DEBUG_CRT  = $(PATH_TOOL_VCC142AMD64_REDIST_DEBUG)/$(TOOL_VCC142_REDIST_CRT_SUBDIR)
     120TOOL_VCC142AMD64_REDIST_CRT_DLLS        = $(TOOL_VCC142_REDIST_CRT_DLLS.amd64)
     121TOOL_VCC142AMD64_REDIST_CONCRT_DLLS     = $(TOOL_VCC142_REDIST_CONCRT_DLLS.amd64)
     122TOOL_VCC142AMD64_REDIST_CPP_DLLS        = $(TOOL_VCC142_REDIST_CPP_DLLS.amd64)
     123TOOL_VCC142AMD64_REDIST_WINRT_DLLS      = $(TOOL_VCC142_REDIST_WINRT_DLLS.amd64)
     124
    120125
    121126#
    122127# Properties used by kBuild
    123128#
    124 TOOL_VCC141AMD64_COBJSUFF         ?= .obj
    125 TOOL_VCC141AMD64_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
    126 TOOL_VCC141AMD64_CFLAGS.debug     ?=
    127 TOOL_VCC141AMD64_CFLAGS.dbgopt    ?= -O2
    128 TOOL_VCC141AMD64_CFLAGS.release   ?= -O2
    129 TOOL_VCC141AMD64_CFLAGS.profile   ?= -O2
    130 TOOL_VCC141AMD64_CINCS            ?= $(PATH_TOOL_VCC141AMD64_INC)
    131 TOOL_VCC141AMD64_CDEFS            ?=
    132 
    133 TOOL_VCC141AMD64_CXXOBJSUFF       ?= .obj
    134 TOOL_VCC141AMD64_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
    135 TOOL_VCC141AMD64_CXXFLAGS.debug   ?=
    136 TOOL_VCC141AMD64_CXXFLAGS.dbgopt  ?= -O2
    137 TOOL_VCC141AMD64_CXXFLAGS.release ?= -O2
    138 TOOL_VCC141AMD64_CXXFLAGS.profile ?= -O2
    139 TOOL_VCC141AMD64_CXXINCS          ?= $(PATH_TOOL_VCC141AMD64_INC) $(PATH_TOOL_VCC141AMD64_ATLMFC_INC)
    140 TOOL_VCC141AMD64_CXXDEFS          ?=
    141 
    142 TOOL_VCC141AMD64_ASOBJSUFF        ?= .obj
    143 
    144 TOOL_VCC141AMD64_RCOBJSUFF        ?= .res
    145 TOOL_VCC141AMD64_RCINCS           ?= $(PATH_TOOL_VCC141AMD64_INC) $(PATH_TOOL_VCC141AMD64_ATLMFC_INC)
    146 
    147 TOOL_VCC141AMD64_ARFLAGS          ?= -nologo -machine:amd64
    148 TOOL_VCC141AMD64_ARLIBSUFF        ?= .lib
    149 
    150 TOOL_VCC141AMD64_LDFLAGS          ?= -nologo -machine:amd64
    151 TOOL_VCC141AMD64_LDFLAGS.debug    ?= -debug
    152 TOOL_VCC141AMD64_LDFLAGS.dbgopt   ?= -debug
    153 TOOL_VCC141AMD64_LDFLAGS.profile  ?= -debug
    154 TOOL_VCC141AMD64_LDFLAGS.release  ?=
     129TOOL_VCC142AMD64_COBJSUFF         ?= .obj
     130TOOL_VCC142AMD64_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
     131TOOL_VCC142AMD64_CFLAGS.debug     ?=
     132TOOL_VCC142AMD64_CFLAGS.dbgopt    ?= -O2
     133TOOL_VCC142AMD64_CFLAGS.release   ?= -O2
     134TOOL_VCC142AMD64_CFLAGS.profile   ?= -O2
     135TOOL_VCC142AMD64_CINCS            ?= $(PATH_TOOL_VCC142AMD64_INC)
     136TOOL_VCC142AMD64_CDEFS            ?=
     137
     138TOOL_VCC142AMD64_CXXOBJSUFF       ?= .obj
     139TOOL_VCC142AMD64_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
     140TOOL_VCC142AMD64_CXXFLAGS.debug   ?=
     141TOOL_VCC142AMD64_CXXFLAGS.dbgopt  ?= -O2
     142TOOL_VCC142AMD64_CXXFLAGS.release ?= -O2
     143TOOL_VCC142AMD64_CXXFLAGS.profile ?= -O2
     144TOOL_VCC142AMD64_CXXINCS          ?= $(PATH_TOOL_VCC142AMD64_INC) $(PATH_TOOL_VCC142AMD64_ATLMFC_INC)
     145TOOL_VCC142AMD64_CXXDEFS          ?=
     146
     147TOOL_VCC142AMD64_ASOBJSUFF        ?= .obj
     148
     149TOOL_VCC142AMD64_RCOBJSUFF        ?= .res
     150TOOL_VCC142AMD64_RCINCS           ?= $(PATH_TOOL_VCC142AMD64_INC) $(PATH_TOOL_VCC142AMD64_ATLMFC_INC)
     151
     152TOOL_VCC142AMD64_ARFLAGS          ?= -nologo -machine:amd64
     153TOOL_VCC142AMD64_ARLIBSUFF        ?= .lib
     154
     155TOOL_VCC142AMD64_LDFLAGS          ?= -nologo -machine:amd64
     156TOOL_VCC142AMD64_LDFLAGS.debug    ?= -debug
     157TOOL_VCC142AMD64_LDFLAGS.dbgopt   ?= -debug
     158TOOL_VCC142AMD64_LDFLAGS.profile  ?= -debug
     159TOOL_VCC142AMD64_LDFLAGS.release  ?=
    155160
    156161
     
    169174# @param    $(outbase)  Output basename (full). Use this for list files and such.
    170175# @param    $(objsuff)  Object suffix.
    171 TOOL_VCC141AMD64_COMPILE_C_DEPEND =
    172 TOOL_VCC141AMD64_COMPILE_C_DEPORD =
    173 TOOL_VCC141AMD64_COMPILE_C_OUTPUT =
    174 TOOL_VCC141AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb)
    175 ifdef TOOL_VCC141AMD64_KSUBMIT
    176  TOOL_VCC141AMD64_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
    177  define TOOL_VCC141AMD64_COMPILE_C_CMDS
    178         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    179                 -- $(TOOL_VCC141AMD64_CC) -c\
     176TOOL_VCC142AMD64_COMPILE_C_DEPEND =
     177TOOL_VCC142AMD64_COMPILE_C_DEPORD =
     178TOOL_VCC142AMD64_COMPILE_C_OUTPUT =
     179TOOL_VCC142AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC142_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC142_PDB, $(outbase)-obj,idb)
     180ifdef TOOL_VCC142AMD64_KSUBMIT
     181 TOOL_VCC142AMD64_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
     182 define TOOL_VCC142AMD64_COMPILE_C_CMDS
     183        $(QUIET)$(TOOL_VCC142AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     184                -- $(TOOL_VCC142AMD64_CC) -c\
    180185                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    181186                -Fd$(outbase)-obj.pdb \
     
    184189 endef
    185190else
    186  define TOOL_VCC141AMD64_COMPILE_C_CMDS
    187         $(QUIET)$(TOOL_VCC141AMD64_SETUP_ENV)$(TOOL_VCC141AMD64_CC) -c\
     191 define TOOL_VCC142AMD64_COMPILE_C_CMDS
     192        $(QUIET)$(TOOL_VCC142AMD64_SETUP_ENV)$(TOOL_VCC142AMD64_CC) -c\
    188193                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    189194                -Fd$(outbase)-obj.pdb \
     
    192197        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    193198 endef
    194 endif # !TOOL_VCC141AMD64_KSUBMIT
     199endif # !TOOL_VCC142AMD64_KSUBMIT
    195200
    196201
     
    208213# @param    $(outbase)  Output basename (full). Use this for list files and such.
    209214# @param    $(objsuff)  Object suffix.
    210 TOOL_VCC141AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    211 TOOL_VCC141AMD64_COMPILE_CXX_DEPORD =
    212 TOOL_VCC141AMD64_COMPILE_CXX_OUTPUT =
    213 TOOL_VCC141AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
    214         ,,$(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb))
    215 ifdef TOOL_VCC141AMD64_KSUBMIT
    216  TOOL_VCC141AMD64_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
    217  define TOOL_VCC141AMD64_COMPILE_CXX_CMDS
    218         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    219                 -- $(TOOL_VCC141AMD64_CXX) -c\
     215TOOL_VCC142AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
     216TOOL_VCC142AMD64_COMPILE_CXX_DEPORD =
     217TOOL_VCC142AMD64_COMPILE_CXX_OUTPUT =
     218TOOL_VCC142AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     219        ,,$(call TOOL_VCC142_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC142_PDB, $(outbase)-obj,idb))
     220ifdef TOOL_VCC142AMD64_KSUBMIT
     221 TOOL_VCC142AMD64_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
     222 define TOOL_VCC142AMD64_COMPILE_CXX_CMDS
     223        $(QUIET)$(TOOL_VCC142AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     224                -- $(TOOL_VCC142AMD64_CXX) -c\
    220225                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    221226                $(if-expr defined($(target)_PCH_HDR)\
     
    226231 endef
    227232else
    228  define TOOL_VCC141AMD64_COMPILE_CXX_CMDS
    229         $(QUIET)$(TOOL_VCC141AMD64_SETUP_ENV)$(TOOL_VCC141AMD64_CXX) -c\
     233 define TOOL_VCC142AMD64_COMPILE_CXX_CMDS
     234        $(QUIET)$(TOOL_VCC142AMD64_SETUP_ENV)$(TOOL_VCC142AMD64_CXX) -c\
    230235                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    231236                $(if-expr defined($(target)_PCH_HDR)\
     
    236241        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    237242 endef
    238 endif # !TOOL_VCC141AMD64_KSUBMIT
     243endif # !TOOL_VCC142AMD64_KSUBMIT
    239244
    240245
     
    245250# related _1_VCC_PCH_FILE and add -Yc.
    246251#
    247 TOOL_VCC141AMD64-PCH                         := Helper for creating precompiled header using CXX handling.
    248 TOOL_VCC141AMD64-PCH_EXTENDS                 := VCC141AMD64
    249 TOOL_VCC141AMD64-PCH_CXXOBJSUFF              := .obj
    250 TOOL_VCC141AMD64-PCH_CXXINCS                  = $(TOOL_VCC141AMD64_CXXINCS)
    251 TOOL_VCC141AMD64-PCH_CXXFLAGS                 = $(TOOL_VCC141AMD64_CXXFLAGS) -FS
    252 TOOL_VCC141AMD64-PCH_CXXFLAGS.debug           = $(TOOL_VCC141AMD64_CXXFLAGS.debug)
    253 TOOL_VCC141AMD64-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC141AMD64_CXXFLAGS.dbgopt)
    254 TOOL_VCC141AMD64-PCH_CXXFLAGS.release         = $(TOOL_VCC141AMD64_CXXFLAGS.release)
    255 TOOL_VCC141AMD64-PCH_CXXFLAGS.profile         = $(TOOL_VCC141AMD64_CXXFLAGS.profile)
    256 TOOL_VCC141AMD64-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
    257 TOOL_VCC141AMD64-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
    258 TOOL_VCC141AMD64-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    259 TOOL_VCC141AMD64-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
    260 ifdef TOOL_VCC141AMD64_KSUBMIT
    261  define TOOL_VCC141AMD64-PCH_COMPILE_CXX_CMDS
     252TOOL_VCC142AMD64-PCH                         := Helper for creating precompiled header using CXX handling.
     253TOOL_VCC142AMD64-PCH_EXTENDS                 := VCC142AMD64
     254TOOL_VCC142AMD64-PCH_CXXOBJSUFF              := .obj
     255TOOL_VCC142AMD64-PCH_CXXINCS                  = $(TOOL_VCC142AMD64_CXXINCS)
     256TOOL_VCC142AMD64-PCH_CXXFLAGS                 = $(TOOL_VCC142AMD64_CXXFLAGS) -FS
     257TOOL_VCC142AMD64-PCH_CXXFLAGS.debug           = $(TOOL_VCC142AMD64_CXXFLAGS.debug)
     258TOOL_VCC142AMD64-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC142AMD64_CXXFLAGS.dbgopt)
     259TOOL_VCC142AMD64-PCH_CXXFLAGS.release         = $(TOOL_VCC142AMD64_CXXFLAGS.release)
     260TOOL_VCC142AMD64-PCH_CXXFLAGS.profile         = $(TOOL_VCC142AMD64_CXXFLAGS.profile)
     261TOOL_VCC142AMD64-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     262TOOL_VCC142AMD64-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     263TOOL_VCC142AMD64-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     264TOOL_VCC142AMD64-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     265ifdef TOOL_VCC142AMD64_KSUBMIT
     266 define TOOL_VCC142AMD64-PCH_COMPILE_CXX_CMDS
    262267        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    263         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
    264                 -- $(TOOL_VCC141AMD64_CXX) -c -Yc\
     268        $(QUIET)$(TOOL_VCC142AMD64_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     269                -- $(TOOL_VCC142AMD64_CXX) -c -Yc\
    265270                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    266271               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    271276 endef
    272277else
    273  define TOOL_VCC141AMD64-PCH_COMPILE_CXX_CMDS
     278 define TOOL_VCC142AMD64-PCH_COMPILE_CXX_CMDS
    274279        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    275         $(QUIET)$(TOOL_VCC141AMD64_SETUP_ENV)$(TOOL_VCC141AMD64_CXX) -c -Yc\
     280        $(QUIET)$(TOOL_VCC142AMD64_SETUP_ENV)$(TOOL_VCC142AMD64_CXX) -c -Yc\
    276281                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    277282               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    283288
    284289 endef
    285 endif # !TOOL_VCC141AMD64_KSUBMIT
     290endif # !TOOL_VCC142AMD64_KSUBMIT
    286291
    287292
     
    301306# @param    $(outbase)  Output basename (full). Use this for list files and such.
    302307# @param    $(objsuff)  Object suffix.
    303 TOOL_VCC141AMD64_COMPILE_RC_DEPEND =
    304 TOOL_VCC141AMD64_COMPILE_RC_DEPORD =
    305 TOOL_VCC141AMD64_COMPILE_RC_OUTPUT =
    306 define TOOL_VCC141AMD64_COMPILE_RC_CMDS
    307         $(QUIET)$(TOOL_VCC141AMD64_RC) \
     308TOOL_VCC142AMD64_COMPILE_RC_DEPEND =
     309TOOL_VCC142AMD64_COMPILE_RC_DEPORD =
     310TOOL_VCC142AMD64_COMPILE_RC_OUTPUT =
     311define TOOL_VCC142AMD64_COMPILE_RC_CMDS
     312        $(QUIET)$(TOOL_VCC142AMD64_RC) \
    308313                $(flags) $(qaddprefix sh,/i, $(subst /,\\,$(incs))) $(qaddprefix sh,/d, $(defs))\
    309314                /fo$(obj)\
     
    322327# @param    $(outbase)  Output basename (full). Use this for list files and such.
    323328#
    324 TOOL_VCC141AMD64_LINK_LIBRARY_DEPEND = $(othersrc)
    325 TOOL_VCC141AMD64_LINK_LIBRARY_DEPORD =
    326 TOOL_VCC141AMD64_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    327 TOOL_VCC141AMD64_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
    328 define TOOL_VCC141AMD64_LINK_LIBRARY_CMDS
     329TOOL_VCC142AMD64_LINK_LIBRARY_DEPEND = $(othersrc)
     330TOOL_VCC142AMD64_LINK_LIBRARY_DEPORD =
     331TOOL_VCC142AMD64_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     332TOOL_VCC142AMD64_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
     333define TOOL_VCC142AMD64_LINK_LIBRARY_CMDS
    329334        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    330335                $(qforeachfile u,arg, $(objs) $(filter-out %.def,$(othersrc)),$(quote-sh "$(subst /,\,$(arg))")) \
    331336                $(qforeachfile u,arg, $(filter %.def,$(othersrc)),$(quote-sh "/DEF:$(subst /,\,$(arg))"))
    332         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_AR) $(flags) /OUT:$(out) @$(outbase).rsp
     337        $(QUIET)$(TOOL_VCC142AMD64_KSUBMIT_DD) $(TOOL_VCC142AMD64_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    333338endef
    334339
     
    348353# @param    $(outbase)      Output basename (full). Use this for list files and such.
    349354#
    350 TOOL_VCC141AMD64_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    351 TOOL_VCC141AMD64_LINK_PROGRAM_DEPORD =
    352 TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    353 TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    354 TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
    355 TOOL_VCC141AMD64_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    356 define TOOL_VCC141AMD64_LINK_PROGRAM_CMDS
     355TOOL_VCC142AMD64_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     356TOOL_VCC142AMD64_LINK_PROGRAM_DEPORD =
     357TOOL_VCC142AMD64_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     358TOOL_VCC142AMD64_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     359TOOL_VCC142AMD64_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
     360TOOL_VCC142AMD64_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     361define TOOL_VCC142AMD64_LINK_PROGRAM_CMDS
    357362        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    358363                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    359         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \
     364        $(QUIET)$(TOOL_VCC142AMD64_KSUBMIT_DD) $(TOOL_VCC142AMD64_LD) $(flags) \
    360365                /OUT:$(out) \
    361366                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    365370                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    366371                @$(outbase).rsp
    367 ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST
     372ifndef TOOL_VCC142AMD64_NO_AUTO_MANIFEST
    368373        $(QUIET)$(TEST) -f $(out).manifest -- \
    369                 $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
     374                $(TOOL_VCC142AMD64_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
    370375endif
    371376endef
     
    386391#
    387392# @param    $(outbase)  Output basename (full). Use this for list files and such.
    388 TOOL_VCC141AMD64_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    389 TOOL_VCC141AMD64_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
    390 TOOL_VCC141AMD64_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
    391 TOOL_VCC141AMD64_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
    392 TOOL_VCC141AMD64_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
    393 TOOL_VCC141AMD64_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
    394 TOOL_VCC141AMD64_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    395 define TOOL_VCC141AMD64_LINK_DLL_CMDS
     393TOOL_VCC142AMD64_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     394TOOL_VCC142AMD64_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
     395TOOL_VCC142AMD64_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
     396TOOL_VCC142AMD64_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
     397TOOL_VCC142AMD64_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
     398TOOL_VCC142AMD64_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
     399TOOL_VCC142AMD64_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     400define TOOL_VCC142AMD64_LINK_DLL_CMDS
    396401        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    397402                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    398         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \
     403        $(QUIET)$(TOOL_VCC142AMD64_KSUBMIT_DD) $(TOOL_VCC142AMD64_LD) $(flags) \
    399404                /OUT:$(out) \
    400405                /IMPLIB:$(outbase).lib \
     
    406411                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    407412                @$(outbase).rsp
    408 ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST
     413ifndef TOOL_VCC142AMD64_NO_AUTO_MANIFEST
    409414        $(QUIET)$(TEST) -f $(out).manifest -- \
    410                 $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     415                $(TOOL_VCC142AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    411416endif
    412417        $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib
     
    430435#
    431436# @param    $(outbase)  Output basename (full). Use this for list files and such.
    432 TOOL_VCC141AMD64_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    433 TOOL_VCC141AMD64_LINK_SYSMOD_DEPORD =
    434 TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    435 TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    436 TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
    437 TOOL_VCC141AMD64_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    438 define TOOL_VCC141AMD64_LINK_SYSMOD_CMDS
     437TOOL_VCC142AMD64_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     438TOOL_VCC142AMD64_LINK_SYSMOD_DEPORD =
     439TOOL_VCC142AMD64_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     440TOOL_VCC142AMD64_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     441TOOL_VCC142AMD64_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
     442TOOL_VCC142AMD64_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     443define TOOL_VCC142AMD64_LINK_SYSMOD_CMDS
    439444        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    440445                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    441         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \
     446        $(QUIET)$(TOOL_VCC142AMD64_KSUBMIT_DD) $(TOOL_VCC142AMD64_LD) $(flags) \
    442447                /OUT:$(out) \
    443448                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    447452                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    448453                @$(outbase).rsp
    449 ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST
     454ifndef TOOL_VCC142AMD64_NO_AUTO_MANIFEST
    450455        $(QUIET)$(TEST) -f $(out).manifest -- \
    451                 $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     456                $(TOOL_VCC142AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    452457endif
    453458endef
  • trunk/kBuild/tools/VCC142X86.kmk

    r3332 r3339  
    11# $Id$
    22## @file
    3 # kBuild Tool Config - Visual C++ 14.1 (aka Visual 2017 and MSC v19.10), targeting x86.
     3# kBuild Tool Config - Visual C++ 14.2 (aka Visual 2019 and MSC v19.20), targeting x86.
    44#
    55
     
    3232#
    3333
    34 ifndef TOOL_VCC141
    35  include $(KBUILD_PATH)/tools/VCC141.kmk
    36 endif
    37 
    38 TOOL_VCC141X86 := Visual C++ 14.1 (aka Visual 2017 and MSC v19.1), targeting x86
     34ifndef TOOL_VCC142
     35 include $(KBUILD_PATH)/tools/VCC142.kmk
     36endif
     37
     38TOOL_VCC142X86 := Visual C++ 14.2 (aka Visual 2019 and MSC v19.20), targeting x86
    3939
    4040#
    4141# Tool Specific Properties
    4242#
    43 ifndef PATH_TOOL_VCC141X86
    44  PATH_TOOL_VCC141X86 := $(PATH_TOOL_VCC141)
     43ifndef PATH_TOOL_VCC142X86
     44 PATH_TOOL_VCC142X86 := $(PATH_TOOL_VCC142)
    4545else
    4646 # Resolve any fancy stuff once and for all.
    47  PATH_TOOL_VCC141X86 := $(PATH_TOOL_VCC141X86)
    48 endif
    49 
    50 ifndef PATH_TOOL_VCC141X86_BIN
    51 PATH_TOOL_VCC141X86_BIN     := $(PATH_TOOL_VCC141_HOST_BIN)/x86
     47 PATH_TOOL_VCC142X86 := $(PATH_TOOL_VCC142X86)
     48endif
     49
     50ifndef PATH_TOOL_VCC142X86_BIN
     51PATH_TOOL_VCC142X86_BIN     := $(PATH_TOOL_VCC142_HOST_BIN)/x86
    5252else
    53 PATH_TOOL_VCC141X86_BIN     := $(PATH_TOOL_VCC141_BIN)
    54 endif
    55 PATH_TOOL_VCC141X86_BIN_QSH := $(requote sh,$(PATH_TOOL_VCC141X86_BIN))
     53PATH_TOOL_VCC142X86_BIN     := $(PATH_TOOL_VCC142_BIN)
     54endif
     55PATH_TOOL_VCC142X86_BIN_QSH := $(requote sh,$(PATH_TOOL_VCC142X86_BIN))
    5656
    5757# A bunch of DLLs are only in the subdir matching the host one, so we need to add it to the PATH when cross compiling.
    58 ifndef PATH_TOOL_VCC141X86_DLL_BIN
    59  ifneq ($(PATH_TOOL_VCC141_HOST_DLL_BIN),$(PATH_TOOL_VCC141X86_BIN))
    60 PATH_TOOL_VCC141X86_DLL_BIN := $(PATH_TOOL_VCC141_HOST_DLL_BIN)
     58ifndef PATH_TOOL_VCC142X86_DLL_BIN
     59 ifneq ($(PATH_TOOL_VCC142_HOST_DLL_BIN),$(PATH_TOOL_VCC142X86_BIN))
     60PATH_TOOL_VCC142X86_DLL_BIN := $(PATH_TOOL_VCC142_HOST_DLL_BIN)
    6161 endif
    6262endif
    6363
    64 ifndef PATH_TOOL_VCC141X86_LIB
    65 PATH_TOOL_VCC141X86_LIB     := $(PATH_TOOL_VCC141_LIB.x86)
    66 endif
    67 ifndef PATH_TOOL_VCC141_ONECORE_LIB
    68 PATH_TOOL_VCC141_ONECORE_LIB  := $(PATH_TOOL_VCC141_ONECORE_LIB.x86)
    69 endif
    70 
    71 ifndef PATH_TOOL_VCC141X86_INC
    72 PATH_TOOL_VCC141X86_INC     := $(PATH_TOOL_VCC141_INC)
    73 endif
    74 
    75 ifndef PATH_TOOL_VCC141X86_ATLMFC_INC
    76 PATH_TOOL_VCC141X86_ATLMFC_INC := $(PATH_TOOL_VCC141_ATLMFC_INC.x86)
    77 endif
    78 ifndef PATH_TOOL_VCC141X86_ATLMFC_LIB
    79 PATH_TOOL_VCC141X86_ATLMFC_LIB := $(PATH_TOOL_VCC141_ATLMFC_LIB.x86)
    80 endif
    81 
    82 TOOL_VCC141X86_CC      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141X86_BIN_QSH)/cl.exe
    83 TOOL_VCC141X86_CXX     ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141X86_BIN_QSH)/cl.exe
    84 TOOL_VCC141X86_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141X86_BIN_QSH)/ml64.exe
    85 #TOOL_VCC141X86_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141X86_BIN_QSH)/lib.exe - just an exec wrapper for the below
    86 TOOL_VCC141X86_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141X86_BIN_QSH)/link.exe /LIB
    87 TOOL_VCC141X86_LD      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141X86_BIN_QSH)/link.exe
    88 TOOL_VCC141X86_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141X86_BIN_QSH)/dumpbin.exe
    89 TOOL_VCC141X86_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141X86_BIN_QSH)/editbin.exe
    90 
    91 TOOL_VCC141X86_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED)
    92 TOOL_VCC141X86_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED)
    93 
    94 undefine TOOL_VCC141X86_USE_KSUBMIT # for now
    95 ifdef TOOL_VCC141X86_USE_KSUBMIT
     64ifndef PATH_TOOL_VCC142X86_LIB
     65PATH_TOOL_VCC142X86_LIB     := $(PATH_TOOL_VCC142_LIB.x86)
     66endif
     67ifndef PATH_TOOL_VCC142_ONECORE_LIB
     68PATH_TOOL_VCC142_ONECORE_LIB  := $(PATH_TOOL_VCC142_ONECORE_LIB.x86)
     69endif
     70
     71ifndef PATH_TOOL_VCC142X86_INC
     72PATH_TOOL_VCC142X86_INC     := $(PATH_TOOL_VCC142_INC)
     73endif
     74
     75ifndef PATH_TOOL_VCC142X86_ATLMFC_INC
     76PATH_TOOL_VCC142X86_ATLMFC_INC := $(PATH_TOOL_VCC142_ATLMFC_INC.x86)
     77endif
     78ifndef PATH_TOOL_VCC142X86_ATLMFC_LIB
     79PATH_TOOL_VCC142X86_ATLMFC_LIB := $(PATH_TOOL_VCC142_ATLMFC_LIB.x86)
     80endif
     81
     82TOOL_VCC142X86_CC      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142X86_BIN_QSH)/cl.exe
     83TOOL_VCC142X86_CXX     ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142X86_BIN_QSH)/cl.exe
     84TOOL_VCC142X86_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142X86_BIN_QSH)/ml64.exe
     85#TOOL_VCC142X86_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142X86_BIN_QSH)/lib.exe - just an exec wrapper for the below
     86TOOL_VCC142X86_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142X86_BIN_QSH)/link.exe /LIB
     87TOOL_VCC142X86_LD      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142X86_BIN_QSH)/link.exe
     88TOOL_VCC142X86_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142X86_BIN_QSH)/dumpbin.exe
     89TOOL_VCC142X86_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142X86_BIN_QSH)/editbin.exe
     90
     91TOOL_VCC142X86_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC142_RC_CACHED)
     92TOOL_VCC142X86_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
     93
     94undefine TOOL_VCC142X86_USE_KSUBMIT # for now
     95ifdef TOOL_VCC142X86_USE_KSUBMIT
    9696 ifeq ($(KBUILD_HOST),win)
    97   ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC141X86_BIN)),-3),64/)
    98    TOOL_VCC141X86_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
     97  ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC142X86_BIN)),-3),64/)
     98   TOOL_VCC142X86_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
    9999  else
    100    TOOL_VCC141X86_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
     100   TOOL_VCC142X86_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
    101101  endif
    102   ifdef PATH_TOOL_VCC141X86_DLL_BIN
    103    TOOL_VCC141X86_KSUBMIT := $(TOOL_VCC141X86_KSUBMIT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC141X86_DLL_BIN));"
     102  ifdef PATH_TOOL_VCC142X86_DLL_BIN
     103   TOOL_VCC142X86_KSUBMIT := $(TOOL_VCC142X86_KSUBMIT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC142X86_DLL_BIN));"
    104104  endif
    105   TOOL_VCC141X86_KSUBMIT_DD := $(TOOL_VCC141X86_KSUBMIT) --
     105  TOOL_VCC142X86_KSUBMIT_DD := $(TOOL_VCC142X86_KSUBMIT) --
    106106 endif
    107107endif
    108 ifdef PATH_TOOL_VCC141X86_DLL_BIN
    109  TOOL_VCC141X86_SETUP_ENV   := $(REDIRECT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC141X86_DLL_BIN));" --$(SP)
    110  ifndef TOOL_VCC141X86_KSUBMIT_DD
    111   TOOL_VCC141X86_KSUBMIT_DD := $(TOOL_VCC141X86_SETUP_ENV)
     108ifdef PATH_TOOL_VCC142X86_DLL_BIN
     109 TOOL_VCC142X86_SETUP_ENV   := $(REDIRECT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC142X86_DLL_BIN));" --$(SP)
     110 ifndef TOOL_VCC142X86_KSUBMIT_DD
     111  TOOL_VCC142X86_KSUBMIT_DD := $(TOOL_VCC142X86_SETUP_ENV)
    112112 endif
    113113endif
    114114
    115 # Redist (more stuff in VCC141.kmk).
    116 PATH_TOOL_VCC141X86_REDIST           ?= $(PATH_TOOL_VCC141_REDIST)/x86
    117 PATH_TOOL_VCC141X86_REDIST_CRT        = $(PATH_TOOL_VCC141X86_REDIST)/$(TOOL_VCC141_REDIST_CRT_SUBDIR)
    118 PATH_TOOL_VCC141X86_REDIST_DEBUG     ?= $(PATH_TOOL_VCC141_REDIST_DEBUG)/x86
    119 PATH_TOOL_VCC141X86_REDIST_DEBUG_CRT  = $(PATH_TOOL_VCC141X86_REDIST_DEBUG)/$(TOOL_VCC141_REDIST_CRT_SUBDIR)
     115# Redist (more stuff in VCC142.kmk).
     116PATH_TOOL_VCC142X86_REDIST           ?= $(PATH_TOOL_VCC142_REDIST)/x86
     117PATH_TOOL_VCC142X86_REDIST_CRT        = $(PATH_TOOL_VCC142X86_REDIST)/$(TOOL_VCC142_REDIST_CRT_SUBDIR)
     118PATH_TOOL_VCC142X86_REDIST_DEBUG     ?= $(PATH_TOOL_VCC142_REDIST_DEBUG)/x86
     119PATH_TOOL_VCC142X86_REDIST_DEBUG_CRT  = $(PATH_TOOL_VCC142X86_REDIST_DEBUG)/$(TOOL_VCC142_REDIST_CRT_SUBDIR)
     120TOOL_VCC142X64_REDIST_CRT_DLLS        = $(TOOL_VCC142_REDIST_CRT_DLLS.x86)
     121TOOL_VCC142X64_REDIST_CONCRT_DLLS     = $(TOOL_VCC142_REDIST_CONCRT_DLLS.x86)
     122TOOL_VCC142X64_REDIST_CPP_DLLS        = $(TOOL_VCC142_REDIST_CPP_DLLS.x86)
     123TOOL_VCC142X64_REDIST_WINRT_DLLS      = $(TOOL_VCC142_REDIST_WINRT_DLLS.x86)
     124
    120125
    121126#
    122127# Properties used by kBuild
    123128#
    124 TOOL_VCC141X86_COBJSUFF         ?= .obj
    125 TOOL_VCC141X86_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
    126 TOOL_VCC141X86_CFLAGS.debug     ?=
    127 TOOL_VCC141X86_CFLAGS.dbgopt    ?= -O2
    128 TOOL_VCC141X86_CFLAGS.release   ?= -O2
    129 TOOL_VCC141X86_CFLAGS.profile   ?= -O2
    130 TOOL_VCC141X86_CINCS            ?= $(PATH_TOOL_VCC141X86_INC)
    131 TOOL_VCC141X86_CDEFS            ?=
    132 
    133 TOOL_VCC141X86_CXXOBJSUFF       ?= .obj
    134 TOOL_VCC141X86_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
    135 TOOL_VCC141X86_CXXFLAGS.debug   ?=
    136 TOOL_VCC141X86_CXXFLAGS.dbgopt  ?= -O2
    137 TOOL_VCC141X86_CXXFLAGS.release ?= -O2
    138 TOOL_VCC141X86_CXXFLAGS.profile ?= -O2
    139 TOOL_VCC141X86_CXXINCS          ?= $(PATH_TOOL_VCC141X86_INC) $(PATH_TOOL_VCC141X86_ATLMFC_INC)
    140 TOOL_VCC141X86_CXXDEFS          ?=
    141 
    142 TOOL_VCC141X86_ASOBJSUFF        ?= .obj
    143 
    144 TOOL_VCC141X86_RCOBJSUFF        ?= .res
    145 TOOL_VCC141X86_RCINCS           ?= $(PATH_TOOL_VCC141X86_INC) $(PATH_TOOL_VCC141X86_ATLMFC_INC)
    146 
    147 TOOL_VCC141X86_ARFLAGS          ?= -nologo -machine:x86
    148 TOOL_VCC141X86_ARLIBSUFF        ?= .lib
    149 
    150 TOOL_VCC141X86_LDFLAGS          ?= -nologo -machine:x86
    151 TOOL_VCC141X86_LDFLAGS.debug    ?= -debug
    152 TOOL_VCC141X86_LDFLAGS.dbgopt   ?= -debug
    153 TOOL_VCC141X86_LDFLAGS.profile  ?= -debug
    154 TOOL_VCC141X86_LDFLAGS.release  ?=
     129TOOL_VCC142X86_COBJSUFF         ?= .obj
     130TOOL_VCC142X86_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
     131TOOL_VCC142X86_CFLAGS.debug     ?=
     132TOOL_VCC142X86_CFLAGS.dbgopt    ?= -O2
     133TOOL_VCC142X86_CFLAGS.release   ?= -O2
     134TOOL_VCC142X86_CFLAGS.profile   ?= -O2
     135TOOL_VCC142X86_CINCS            ?= $(PATH_TOOL_VCC142X86_INC)
     136TOOL_VCC142X86_CDEFS            ?=
     137
     138TOOL_VCC142X86_CXXOBJSUFF       ?= .obj
     139TOOL_VCC142X86_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
     140TOOL_VCC142X86_CXXFLAGS.debug   ?=
     141TOOL_VCC142X86_CXXFLAGS.dbgopt  ?= -O2
     142TOOL_VCC142X86_CXXFLAGS.release ?= -O2
     143TOOL_VCC142X86_CXXFLAGS.profile ?= -O2
     144TOOL_VCC142X86_CXXINCS          ?= $(PATH_TOOL_VCC142X86_INC) $(PATH_TOOL_VCC142X86_ATLMFC_INC)
     145TOOL_VCC142X86_CXXDEFS          ?=
     146
     147TOOL_VCC142X86_ASOBJSUFF        ?= .obj
     148
     149TOOL_VCC142X86_RCOBJSUFF        ?= .res
     150TOOL_VCC142X86_RCINCS           ?= $(PATH_TOOL_VCC142X86_INC) $(PATH_TOOL_VCC142X86_ATLMFC_INC)
     151
     152TOOL_VCC142X86_ARFLAGS          ?= -nologo -machine:x86
     153TOOL_VCC142X86_ARLIBSUFF        ?= .lib
     154
     155TOOL_VCC142X86_LDFLAGS          ?= -nologo -machine:x86
     156TOOL_VCC142X86_LDFLAGS.debug    ?= -debug
     157TOOL_VCC142X86_LDFLAGS.dbgopt   ?= -debug
     158TOOL_VCC142X86_LDFLAGS.profile  ?= -debug
     159TOOL_VCC142X86_LDFLAGS.release  ?=
    155160
    156161
     
    169174# @param    $(outbase)  Output basename (full). Use this for list files and such.
    170175# @param    $(objsuff)  Object suffix.
    171 TOOL_VCC141X86_COMPILE_C_DEPEND =
    172 TOOL_VCC141X86_COMPILE_C_DEPORD =
    173 TOOL_VCC141X86_COMPILE_C_OUTPUT =
    174 TOOL_VCC141X86_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb)
    175 ifdef TOOL_VCC141X86_KSUBMIT
    176  TOOL_VCC141X86_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
    177  define TOOL_VCC141X86_COMPILE_C_CMDS
    178         $(QUIET)$(TOOL_VCC141X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    179                 -- $(TOOL_VCC141X86_CC) -c\
     176TOOL_VCC142X86_COMPILE_C_DEPEND =
     177TOOL_VCC142X86_COMPILE_C_DEPORD =
     178TOOL_VCC142X86_COMPILE_C_OUTPUT =
     179TOOL_VCC142X86_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC142_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC142_PDB, $(outbase)-obj,idb)
     180ifdef TOOL_VCC142X86_KSUBMIT
     181 TOOL_VCC142X86_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
     182 define TOOL_VCC142X86_COMPILE_C_CMDS
     183        $(QUIET)$(TOOL_VCC142X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     184                -- $(TOOL_VCC142X86_CC) -c\
    180185                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    181186                -Fd$(outbase)-obj.pdb \
     
    184189 endef
    185190else
    186  define TOOL_VCC141X86_COMPILE_C_CMDS
    187         $(QUIET)$(TOOL_VCC141X86_SETUP_ENV)$(TOOL_VCC141X86_CC) -c\
     191 define TOOL_VCC142X86_COMPILE_C_CMDS
     192        $(QUIET)$(TOOL_VCC142X86_SETUP_ENV)$(TOOL_VCC142X86_CC) -c\
    188193                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    189194                -Fd$(outbase)-obj.pdb \
     
    192197        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    193198 endef
    194 endif # !TOOL_VCC141X86_KSUBMIT
     199endif # !TOOL_VCC142X86_KSUBMIT
    195200
    196201
     
    208213# @param    $(outbase)  Output basename (full). Use this for list files and such.
    209214# @param    $(objsuff)  Object suffix.
    210 TOOL_VCC141X86_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    211 TOOL_VCC141X86_COMPILE_CXX_DEPORD =
    212 TOOL_VCC141X86_COMPILE_CXX_OUTPUT =
    213 TOOL_VCC141X86_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
    214         ,,$(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb))
    215 ifdef TOOL_VCC141X86_KSUBMIT
    216  TOOL_VCC141X86_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
    217  define TOOL_VCC141X86_COMPILE_CXX_CMDS
    218         $(QUIET)$(TOOL_VCC141X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    219                 -- $(TOOL_VCC141X86_CXX) -c\
     215TOOL_VCC142X86_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
     216TOOL_VCC142X86_COMPILE_CXX_DEPORD =
     217TOOL_VCC142X86_COMPILE_CXX_OUTPUT =
     218TOOL_VCC142X86_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     219        ,,$(call TOOL_VCC142_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC142_PDB, $(outbase)-obj,idb))
     220ifdef TOOL_VCC142X86_KSUBMIT
     221 TOOL_VCC142X86_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
     222 define TOOL_VCC142X86_COMPILE_CXX_CMDS
     223        $(QUIET)$(TOOL_VCC142X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     224                -- $(TOOL_VCC142X86_CXX) -c\
    220225                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    221226                $(if-expr defined($(target)_PCH_HDR)\
     
    226231 endef
    227232else
    228  define TOOL_VCC141X86_COMPILE_CXX_CMDS
    229         $(QUIET)$(TOOL_VCC141X86_SETUP_ENV)$(TOOL_VCC141X86_CXX) -c\
     233 define TOOL_VCC142X86_COMPILE_CXX_CMDS
     234        $(QUIET)$(TOOL_VCC142X86_SETUP_ENV)$(TOOL_VCC142X86_CXX) -c\
    230235                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    231236                $(if-expr defined($(target)_PCH_HDR)\
     
    236241        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    237242 endef
    238 endif # !TOOL_VCC141X86_KSUBMIT
     243endif # !TOOL_VCC142X86_KSUBMIT
    239244
    240245
     
    245250# related _1_VCC_PCH_FILE and add -Yc.
    246251#
    247 TOOL_VCC141X86-PCH                         := Helper for creating precompiled header using CXX handling.
    248 TOOL_VCC141X86-PCH_EXTENDS                 := VCC141X86
    249 TOOL_VCC141X86-PCH_CXXOBJSUFF              := .obj
    250 TOOL_VCC141X86-PCH_CXXINCS                  = $(TOOL_VCC141X86_CXXINCS)
    251 TOOL_VCC141X86-PCH_CXXFLAGS                 = $(TOOL_VCC141X86_CXXFLAGS) -FS
    252 TOOL_VCC141X86-PCH_CXXFLAGS.debug           = $(TOOL_VCC141X86_CXXFLAGS.debug)
    253 TOOL_VCC141X86-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC141X86_CXXFLAGS.dbgopt)
    254 TOOL_VCC141X86-PCH_CXXFLAGS.release         = $(TOOL_VCC141X86_CXXFLAGS.release)
    255 TOOL_VCC141X86-PCH_CXXFLAGS.profile         = $(TOOL_VCC141X86_CXXFLAGS.profile)
    256 TOOL_VCC141X86-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
    257 TOOL_VCC141X86-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
    258 TOOL_VCC141X86-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    259 TOOL_VCC141X86-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
    260 ifdef TOOL_VCC141X86_KSUBMIT
    261  define TOOL_VCC141X86-PCH_COMPILE_CXX_CMDS
     252TOOL_VCC142X86-PCH                         := Helper for creating precompiled header using CXX handling.
     253TOOL_VCC142X86-PCH_EXTENDS                 := VCC142X86
     254TOOL_VCC142X86-PCH_CXXOBJSUFF              := .obj
     255TOOL_VCC142X86-PCH_CXXINCS                  = $(TOOL_VCC142X86_CXXINCS)
     256TOOL_VCC142X86-PCH_CXXFLAGS                 = $(TOOL_VCC142X86_CXXFLAGS) -FS
     257TOOL_VCC142X86-PCH_CXXFLAGS.debug           = $(TOOL_VCC142X86_CXXFLAGS.debug)
     258TOOL_VCC142X86-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC142X86_CXXFLAGS.dbgopt)
     259TOOL_VCC142X86-PCH_CXXFLAGS.release         = $(TOOL_VCC142X86_CXXFLAGS.release)
     260TOOL_VCC142X86-PCH_CXXFLAGS.profile         = $(TOOL_VCC142X86_CXXFLAGS.profile)
     261TOOL_VCC142X86-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     262TOOL_VCC142X86-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     263TOOL_VCC142X86-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     264TOOL_VCC142X86-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     265ifdef TOOL_VCC142X86_KSUBMIT
     266 define TOOL_VCC142X86-PCH_COMPILE_CXX_CMDS
    262267        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    263         $(QUIET)$(TOOL_VCC141X86_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
    264                 -- $(TOOL_VCC141X86_CXX) -c -Yc\
     268        $(QUIET)$(TOOL_VCC142X86_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     269                -- $(TOOL_VCC142X86_CXX) -c -Yc\
    265270                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    266271               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    271276 endef
    272277else
    273  define TOOL_VCC141X86-PCH_COMPILE_CXX_CMDS
     278 define TOOL_VCC142X86-PCH_COMPILE_CXX_CMDS
    274279        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    275         $(QUIET)$(TOOL_VCC141X86_SETUP_ENV)$(TOOL_VCC141X86_CXX) -c -Yc\
     280        $(QUIET)$(TOOL_VCC142X86_SETUP_ENV)$(TOOL_VCC142X86_CXX) -c -Yc\
    276281                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    277282               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    283288
    284289 endef
    285 endif # !TOOL_VCC141X86_KSUBMIT
     290endif # !TOOL_VCC142X86_KSUBMIT
    286291
    287292
     
    301306# @param    $(outbase)  Output basename (full). Use this for list files and such.
    302307# @param    $(objsuff)  Object suffix.
    303 TOOL_VCC141X86_COMPILE_RC_DEPEND =
    304 TOOL_VCC141X86_COMPILE_RC_DEPORD =
    305 TOOL_VCC141X86_COMPILE_RC_OUTPUT =
    306 define TOOL_VCC141X86_COMPILE_RC_CMDS
    307         $(QUIET)$(TOOL_VCC141X86_RC) \
     308TOOL_VCC142X86_COMPILE_RC_DEPEND =
     309TOOL_VCC142X86_COMPILE_RC_DEPORD =
     310TOOL_VCC142X86_COMPILE_RC_OUTPUT =
     311define TOOL_VCC142X86_COMPILE_RC_CMDS
     312        $(QUIET)$(TOOL_VCC142X86_RC) \
    308313                $(flags) $(qaddprefix sh,/i, $(subst /,\\,$(incs))) $(qaddprefix sh,/d, $(defs))\
    309314                /fo$(obj)\
     
    322327# @param    $(outbase)  Output basename (full). Use this for list files and such.
    323328#
    324 TOOL_VCC141X86_LINK_LIBRARY_DEPEND = $(othersrc)
    325 TOOL_VCC141X86_LINK_LIBRARY_DEPORD =
    326 TOOL_VCC141X86_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    327 TOOL_VCC141X86_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
    328 define TOOL_VCC141X86_LINK_LIBRARY_CMDS
     329TOOL_VCC142X86_LINK_LIBRARY_DEPEND = $(othersrc)
     330TOOL_VCC142X86_LINK_LIBRARY_DEPORD =
     331TOOL_VCC142X86_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     332TOOL_VCC142X86_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
     333define TOOL_VCC142X86_LINK_LIBRARY_CMDS
    329334        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    330335                $(qforeachfile u,arg, $(objs) $(filter-out %.def,$(othersrc)),$(quote-sh "$(subst /,\,$(arg))")) \
    331336                $(qforeachfile u,arg, $(filter %.def,$(othersrc)),$(quote-sh "/DEF:$(subst /,\,$(arg))"))
    332         $(QUIET)$(TOOL_VCC141X86_KSUBMIT_DD) $(TOOL_VCC141X86_AR) $(flags) /OUT:$(out) @$(outbase).rsp
     337        $(QUIET)$(TOOL_VCC142X86_KSUBMIT_DD) $(TOOL_VCC142X86_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    333338endef
    334339
     
    348353# @param    $(outbase)      Output basename (full). Use this for list files and such.
    349354#
    350 TOOL_VCC141X86_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    351 TOOL_VCC141X86_LINK_PROGRAM_DEPORD =
    352 TOOL_VCC141X86_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    353 TOOL_VCC141X86_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    354 TOOL_VCC141X86_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
    355 TOOL_VCC141X86_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    356 define TOOL_VCC141X86_LINK_PROGRAM_CMDS
     355TOOL_VCC142X86_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     356TOOL_VCC142X86_LINK_PROGRAM_DEPORD =
     357TOOL_VCC142X86_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     358TOOL_VCC142X86_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     359TOOL_VCC142X86_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
     360TOOL_VCC142X86_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     361define TOOL_VCC142X86_LINK_PROGRAM_CMDS
    357362        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    358363                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    359         $(QUIET)$(TOOL_VCC141X86_KSUBMIT_DD) $(TOOL_VCC141X86_LD) $(flags) \
     364        $(QUIET)$(TOOL_VCC142X86_KSUBMIT_DD) $(TOOL_VCC142X86_LD) $(flags) \
    360365                /OUT:$(out) \
    361366                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    365370                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    366371                @$(outbase).rsp
    367 ifndef TOOL_VCC141X86_NO_AUTO_MANIFEST
     372ifndef TOOL_VCC142X86_NO_AUTO_MANIFEST
    368373        $(QUIET)$(TEST) -f $(out).manifest -- \
    369                 $(TOOL_VCC141X86_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
     374                $(TOOL_VCC142X86_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
    370375endif
    371376endef
     
    386391#
    387392# @param    $(outbase)  Output basename (full). Use this for list files and such.
    388 TOOL_VCC141X86_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    389 TOOL_VCC141X86_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
    390 TOOL_VCC141X86_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
    391 TOOL_VCC141X86_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
    392 TOOL_VCC141X86_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
    393 TOOL_VCC141X86_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
    394 TOOL_VCC141X86_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    395 define TOOL_VCC141X86_LINK_DLL_CMDS
     393TOOL_VCC142X86_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     394TOOL_VCC142X86_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
     395TOOL_VCC142X86_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
     396TOOL_VCC142X86_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
     397TOOL_VCC142X86_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
     398TOOL_VCC142X86_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
     399TOOL_VCC142X86_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     400define TOOL_VCC142X86_LINK_DLL_CMDS
    396401        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    397402                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    398         $(QUIET)$(TOOL_VCC141X86_KSUBMIT_DD) $(TOOL_VCC141X86_LD) $(flags) \
     403        $(QUIET)$(TOOL_VCC142X86_KSUBMIT_DD) $(TOOL_VCC142X86_LD) $(flags) \
    399404                /OUT:$(out) \
    400405                /IMPLIB:$(outbase).lib \
     
    406411                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    407412                @$(outbase).rsp
    408 ifndef TOOL_VCC141X86_NO_AUTO_MANIFEST
     413ifndef TOOL_VCC142X86_NO_AUTO_MANIFEST
    409414        $(QUIET)$(TEST) -f $(out).manifest -- \
    410                 $(TOOL_VCC141X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     415                $(TOOL_VCC142X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    411416endif
    412417        $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib
     
    430435#
    431436# @param    $(outbase)  Output basename (full). Use this for list files and such.
    432 TOOL_VCC141X86_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    433 TOOL_VCC141X86_LINK_SYSMOD_DEPORD =
    434 TOOL_VCC141X86_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    435 TOOL_VCC141X86_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    436 TOOL_VCC141X86_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
    437 TOOL_VCC141X86_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    438 define TOOL_VCC141X86_LINK_SYSMOD_CMDS
     437TOOL_VCC142X86_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     438TOOL_VCC142X86_LINK_SYSMOD_DEPORD =
     439TOOL_VCC142X86_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     440TOOL_VCC142X86_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     441TOOL_VCC142X86_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
     442TOOL_VCC142X86_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     443define TOOL_VCC142X86_LINK_SYSMOD_CMDS
    439444        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    440445                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    441         $(QUIET)$(TOOL_VCC141X86_KSUBMIT_DD) $(TOOL_VCC141X86_LD) $(flags) \
     446        $(QUIET)$(TOOL_VCC142X86_KSUBMIT_DD) $(TOOL_VCC142X86_LD) $(flags) \
    442447                /OUT:$(out) \
    443448                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    447452                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    448453                @$(outbase).rsp
    449 ifndef TOOL_VCC141X86_NO_AUTO_MANIFEST
     454ifndef TOOL_VCC142X86_NO_AUTO_MANIFEST
    450455        $(QUIET)$(TEST) -f $(out).manifest -- \
    451                 $(TOOL_VCC141X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     456                $(TOOL_VCC142X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    452457endif
    453458endef
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette