Changeset 3343


Ignore:
Timestamp:
May 20, 2020, 4:34:15 PM (5 years ago)
Author:
bird
Message:

VCC140*: Adding support for VC++ 14.0 (2015) too.

Location:
trunk/kBuild/tools
Files:
3 copied

Legend:

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

    r3340 r3343  
    11# $Id$
    22## @file
    3 # kBuild Tool Config - Visual C++ 14.1 (aka Visual 2017 and MSC v19.10), default target.
     3# kBuild Tool Config - Visual C++ 14.0 (aka Visual 2015 and MSC v19.0x), default target.
    44#
    55
     
    3232#
    3333
    34 TOOL_VCC141 := Visual C++ 14.1 (aka Visual 2017 and MSC v19.1), targeting $(KBUILD_TARGET).
     34TOOL_VCC140 := Visual C++ 14.0 (aka Visual 2015 and MSC v19.0x), 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_VCC140
     44 PATH_TOOL_VCC140 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.amd64/vcc/v14.0*/)))
     45 ifeq ($(PATH_TOOL_VCC140),)
     46  PATH_TOOL_VCC140 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/vcc/v14.0*/)))
     47 endif
     48 ifeq ($(PATH_TOOL_VCC140),)
     49  PATH_TOOL_VCC140 := $(PATH_TOOL_VCC140X86)
     50 endif
     51 ifeq ($(PATH_TOOL_VCC140),)
     52  PATH_TOOL_VCC140 := $(PATH_TOOL_VCC140)
     53 endif
     54 ifeq ($(PATH_TOOL_VCC140),)
     55  PATH_TOOL_VCC140 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/vcc/v14.0*)))
     56  ifeq ($(PATH_TOOL_VCC140),)
     57   ## @todo Not sure it was placed in the 14.0 directory originally, maybe that's just what 2017 and 2019 does?
     58   PATH_TOOL_VCC140 := $(firstfile $(foreachfile progfilesdir,$(WINCMN_PROGRAM_FILES_LIST)\
     59        , $(rsortfiles $(qwildcard ,$(progfilesdir)/Microsoft\ Visual\ Studio\ 14.0/VC))))
     60   ifeq ($(PATH_TOOL_VCC140),)
     61    $(warning kBuild: PATH_TOOL_VCC140 cannot be determined!)
     62    PATH_TOOL_VCC140 := $(KBUILD_DEVTOOLS)/win.x86/vcc/v140
    6263   endif
    6364  endif
     
    6566else
    6667 # 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))
     68 PATH_TOOL_VCC140 := $(PATH_TOOL_VCC140)
     69endif
     70
     71ifndef PATH_TOOL_VCC140_BASE_BIN
     72PATH_TOOL_VCC140_BASE_BIN := $(PATH_TOOL_VCC140)/bin
     73endif
     74ifndef PATH_TOOL_VCC140_HOST_BIN
     75 ifeq ($(KBUILD_HOST_ARCH),amd64)
     76PATH_TOOL_VCC140_HOST_BIN := $(PATH_TOOL_VCC140_BASE_BIN)/amd64
     77 else if1of ($(KBUILD_HOST_ARCH), arm32 arm64)
     78PATH_TOOL_VCC140_HOST_BIN := $(PATH_TOOL_VCC140_BASE_BIN)/arm
     79 else
     80PATH_TOOL_VCC140_HOST_BIN := $(PATH_TOOL_VCC140_BASE_BIN)
     81 endif
     82endif
     83ifndef PATH_TOOL_VCC140_BIN
     84 ifeq ($(KBUILD_HOST_ARCH),$(KBUILD_TARGET_ARCH))
     85PATH_TOOL_VCC140_BIN      := $(PATH_TOOL_VCC140_HOST_BIN)
     86 else
     87PATH_TOOL_VCC140_BIN      := $(PATH_TOOL_VCC140_BIN)/$(KBUILD_HOST_ARCH)_$(KBUILD_TARGET_ARCH)
     88 endif
     89endif
     90PATH_TOOL_VCC140_BIN_QSH  := $(requote sh,$(PATH_TOOL_VCC140_BIN))
    8091
    8192# 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
     93ifndef PATH_TOOL_VCC140_HOST_DLL_BIN
     94PATH_TOOL_VCC140_HOST_DLL_BIN := $(PATH_TOOL_VCC140_HOST_BIN)
     95endif
     96ifndef PATH_TOOL_VCC140_DLL_BIN
     97 ifneq ($(PATH_TOOL_VCC140_HOST_DLL_BIN),$(PATH_TOOL_VCC140_BIN))
     98PATH_TOOL_VCC140_DLL_BIN      := $(PATH_TOOL_VCC140_HOST_DLL_BIN)
     99 endif
     100endif
     101
     102PATH_TOOL_VCC140_LIB.amd64         ?= $(PATH_TOOL_VCC140)/lib/amd64
     103PATH_TOOL_VCC140_LIB.arm32         ?= $(PATH_TOOL_VCC140)/lib/arm
     104PATH_TOOL_VCC140_LIB.x86           ?= $(PATH_TOOL_VCC140)/lib
     105
     106PATH_TOOL_VCC140_ONECORE_LIB.amd64 ?= $(PATH_TOOL_VCC140)/lib/onecore/amd64
     107PATH_TOOL_VCC140_ONECORE_LIB.arm32 ?= $(PATH_TOOL_VCC140)/lib/onecore/arm
     108PATH_TOOL_VCC140_ONECORE_LIB.x86   ?= $(PATH_TOOL_VCC140)/lib/onecore
     109
     110PATH_TOOL_VCC140_INC               ?= $(PATH_TOOL_VCC140)/include
     111
     112PATH_TOOL_VCC140_ATLMFC            ?= $(PATH_TOOL_VCC140)/atlmfc
     113PATH_TOOL_VCC140_ATLMFC_INC        ?= $(PATH_TOOL_VCC140_ATLMFC)/include
     114PATH_TOOL_VCC140_ATLMFC_LIB.x86    ?= $(PATH_TOOL_VCC140_ATLMFC)/lib
     115PATH_TOOL_VCC140_ATLMFC_LIB.amd64  ?= $(PATH_TOOL_VCC140_ATLMFC)/lib/amd64
     116PATH_TOOL_VCC140_ATLMFC_LIB.arm32  ?= $(PATH_TOOL_VCC140_ATLMFC)/lib/arm
     117
     118TOOL_VCC140_CC      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/cl.exe
     119TOOL_VCC140_CXX     ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/cl.exe
     120ifeq ($(KBUILD_TARGET_ARCH),x86)
     121TOOL_VCC140_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/ml.exe
     122else
     123TOOL_VCC140_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/ml64.exe
     124endif
     125#TOOL_VCC140_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/lib.exe - just an exec wrapper for the below
     126TOOL_VCC140_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/link.exe /LIB
     127TOOL_VCC140_LD      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/link.exe
     128TOOL_VCC140_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/dumpbin.exe
     129TOOL_VCC140_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/editbin.exe
     130
     131TOOL_VCC140_RC  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC140_RC_CACHED)
     132TOOL_VCC140_MT  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC140_MT_CACHED)
     133
     134undefine TOOL_VCC140_USE_KSUBMIT # for now
     135ifdef TOOL_VCC140_USE_KSUBMIT
    122136 ifeq ($(KBUILD_HOST),win)
    123   ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC141_BIN)),-3),64/)
    124    TOOL_VCC141_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
     137  ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC140_BIN)),-3),64/)
     138   TOOL_VCC140_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
    125139  else
    126    TOOL_VCC141_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
     140   TOOL_VCC140_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
    127141  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));"
     142  ifdef PATH_TOOL_VCC140_DLL_BIN
     143   TOOL_VCC140_KSUBMIT := $(TOOL_VCC140_KSUBMIT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC140_DLL_BIN));"
    130144  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)
     145  TOOL_VCC140_KSUBMIT_DD := $(TOOL_VCC140_KSUBMIT) --
     146 endif
     147endif
     148ifdef PATH_TOOL_VCC140_DLL_BIN
     149 TOOL_VCC140_SETUP_ENV   := $(REDIRECT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC140_DLL_BIN));" --$(SP)
     150 ifndef TOOL_VCC140_KSUBMIT_DD
     151  TOOL_VCC140_KSUBMIT_DD := $(TOOL_VCC140_SETUP_ENV)
    138152 endif
    139153endif
     
    141155
    142156## Helper for finding rc.exe and mt.exe in the SDK.
    143 TOOL_VCC141_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(qfirstfile sh,\
     157TOOL_VCC140_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(qfirstfile sh,\
    144158       $(if-expr defined(PATH_SDK_WINSDK10_BIN) , $(qwildcard ,$(PATH_SDK_WINSDK10_BIN)/$2)) \
    145159       $(if-expr defined(PATH_SDK_WINPSDK71_BIN), $(qwildcard ,$(PATH_SDK_WINPSDK71_BIN)/$2)) \
     
    148162        $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS_HST_ALT)/sdk/*/[Bb][Ii][Nn]/$2)) \
    149163        $1))
    150 TOOL_VCC141_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC141_FN_FIND_SDK_TOOL_SUB),)$($3)
     164TOOL_VCC140_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC140_FN_FIND_SDK_TOOL_SUB),)$($3)
    151165
    152166## Constructs the correct .pdb name (the name is lowercased).
    153167# @param    $(1)        Base name, no extention.
    154168# @param    $(2)        The extension.
    155 TOOL_VCC141_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
    156 
    157 #
    158 # Try find the redist directory.  A little complicated as the build number
    159 # doesn't necessarily match that of the compiler.
    160 #
    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*))
    163 else
    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
     169TOOL_VCC140_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
     170
     171#
     172# Try find the redist directory.
     173#
     174ifndef PATH_TOOL_VCC140_REDIST
     175PATH_TOOL_VCC140_REDIST := $(PATH_TOOL_VCC140)/redist
     176endif
     177PATH_TOOL_VCC140_REDIST_DEBUG ?= $(PATH_TOOL_VCC140_REDIST)/debug_nonredist
    172178
    173179## Updates may add more msvcp140_[0-9].dll images as the product matures.
     
    176182# @param 2 The DLL basename (no suffix).
    177183# @param 3 The VCC architecture name (for constructing the path).
    178 FN_TOOL_VCC141_FIND_DLLS = $(2).dll \
    179         $(sortfiles $(qnotdir ,$(qwildcard ,$(PATH_TOOL_VCC142_REDIST)/$(3)/$(1)/$(2)_?.dll)))
    180 
    181 TOOL_VCC141_REDIST_CRT_SUBDIR       := Microsoft.VC141.CRT
    182 TOOL_VCC141_REDIST_DEBUG_CRT_SUBDIR := Microsoft.VC141.DebugCRT
    183 
    184 TOOL_VCC142_REDIST_CRT_DLLS.x86      = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vcruntime140,x86)
    185 TOOL_VCC142_REDIST_CRT_DLLS.amd64    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vcruntime140,x64)
    186 TOOL_VCC142_REDIST_CRT_DLLS.arm32    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vcruntime140,arm)
    187 TOOL_VCC142_REDIST_CRT_DLLS.arm64    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vcruntime140,arm64)
    188 TOOL_VCC142_REDIST_CRT_DLLS          = $(TOOL_VCC142_REDIST_CRT_DLLS.$(KBUILD_TARGET_ARCH))
    189 
    190 TOOL_VCC142_REDIST_CONCRT_DLLS.x86   = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),concrt140,x86)
    191 TOOL_VCC142_REDIST_CONCRT_DLLS.amd64 = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),concrt140,x64)
    192 TOOL_VCC142_REDIST_CONCRT_DLLS.arm32 = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),concrt140,arm)
    193 TOOL_VCC142_REDIST_CONCRT_DLLS.arm64 = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),concrt140,arm64)
    194 TOOL_VCC142_REDIST_CONCRT_DLLS       = $(TOOL_VCC142_REDIST_CONCRT_DLLS.$(KBUILD_TARGET_ARCH))
    195 
    196 TOOL_VCC142_REDIST_CPP_DLLS.x86      = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),msvcp140,x86)
    197 TOOL_VCC142_REDIST_CPP_DLLS.amd64    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),msvcp140,x64)
    198 TOOL_VCC142_REDIST_CPP_DLLS.arm32    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),msvcp140,arm)
    199 TOOL_VCC142_REDIST_CPP_DLLS.arm64    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),msvcp140,arm64)
    200 TOOL_VCC142_REDIST_CPP_DLLS          = $(TOOL_VCC142_REDIST_CPP_DLLS.$(KBUILD_TARGET_ARCH))
    201 
    202 TOOL_VCC142_REDIST_WINRT_DLLS.x86    = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vccorlib140,x86)
    203 TOOL_VCC142_REDIST_WINRT_DLLS.amd64  = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vccorlib140,x64)
    204 TOOL_VCC142_REDIST_WINRT_DLLS.arm32  = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vccorlib140,arm)
    205 TOOL_VCC142_REDIST_WINRT_DLLS.arm64  = $(call FN_TOOL_VCC142_FIND_DLLS,$(TOOL_VCC142_REDIST_CRT_SUBDIR),vccorlib140,arm64)
    206 TOOL_VCC142_REDIST_WINRT_DLLS        = $(TOOL_VCC142_REDIST_WINRT_DLLS.$(KBUILD_TARGET_ARCH))
    207 
    208 TOOL_VCC141_REDIST_CXXAMP_SUBDIR := Microsoft.VC141.CXXAMP
    209 TOOL_VCC141_REDIST_MFC_SUBDIR    := Microsoft.VC141.MFC
    210 TOOL_VCC141_REDIST_MFCLOC_SUBDIR := Microsoft.VC141.MFCLOC
    211 TOOL_VCC141_REDIST_OPENMP_SUBDIR := Microsoft.VC141.OpenMP
     184FN_TOOL_VCC140_FIND_DLLS = $(2).dll \
     185        $(sortfiles $(qnotdir ,$(qwildcard ,$(PATH_TOOL_VCC140_REDIST)/$(3)/$(1)/$(2)_?.dll)))
     186
     187TOOL_VCC140_REDIST_CRT_SUBDIR       := Microsoft.VC140.CRT
     188TOOL_VCC140_REDIST_DEBUG_CRT_SUBDIR := Microsoft.VC140.DebugCRT
     189
     190TOOL_VCC140_REDIST_CRT_DLLS.x86      = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),vcruntime140,x86)
     191TOOL_VCC140_REDIST_CRT_DLLS.amd64    = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),vcruntime140,x64)
     192TOOL_VCC140_REDIST_CRT_DLLS.arm32    = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),vcruntime140,arm)
     193TOOL_VCC140_REDIST_CRT_DLLS          = $(TOOL_VCC140_REDIST_CRT_DLLS.$(KBUILD_TARGET_ARCH))
     194
     195TOOL_VCC140_REDIST_CONCRT_DLLS.x86   = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),concrt140,x86)
     196TOOL_VCC140_REDIST_CONCRT_DLLS.amd64 = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),concrt140,x64)
     197TOOL_VCC140_REDIST_CONCRT_DLLS.arm32 = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),concrt140,arm)
     198TOOL_VCC140_REDIST_CONCRT_DLLS       = $(TOOL_VCC140_REDIST_CONCRT_DLLS.$(KBUILD_TARGET_ARCH))
     199
     200TOOL_VCC140_REDIST_CPP_DLLS.x86      = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),msvcp140,x86)
     201TOOL_VCC140_REDIST_CPP_DLLS.amd64    = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),msvcp140,x64)
     202TOOL_VCC140_REDIST_CPP_DLLS.arm32    = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),msvcp140,arm)
     203TOOL_VCC140_REDIST_CPP_DLLS          = $(TOOL_VCC140_REDIST_CPP_DLLS.$(KBUILD_TARGET_ARCH))
     204
     205TOOL_VCC140_REDIST_WINRT_DLLS.x86    = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),vccorlib140,x86)
     206TOOL_VCC140_REDIST_WINRT_DLLS.amd64  = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),vccorlib140,x64)
     207TOOL_VCC140_REDIST_WINRT_DLLS.arm32  = $(call FN_TOOL_VCC140_FIND_DLLS,$(TOOL_VCC140_REDIST_CRT_SUBDIR),vccorlib140,arm)
     208TOOL_VCC140_REDIST_WINRT_DLLS        = $(TOOL_VCC140_REDIST_WINRT_DLLS.$(KBUILD_TARGET_ARCH))
     209
     210TOOL_VCC140_REDIST_CXXAMP_SUBDIR := Microsoft.VC140.CXXAMP
     211TOOL_VCC140_REDIST_MFC_SUBDIR    := Microsoft.VC140.MFC
     212TOOL_VCC140_REDIST_MFCLOC_SUBDIR := Microsoft.VC140.MFCLOC
     213TOOL_VCC140_REDIST_OPENMP_SUBDIR := Microsoft.VC140.OpenMP
    212214
    213215
     
    215217# Properties used by kBuild
    216218#
    217 TOOL_VCC141_COBJSUFF         ?= .obj
    218 TOOL_VCC141_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
    219 TOOL_VCC141_CFLAGS.debug     ?=
    220 TOOL_VCC141_CFLAGS.dbgopt    ?= -O2
    221 TOOL_VCC141_CFLAGS.release   ?= -O2
    222 TOOL_VCC141_CFLAGS.profile   ?= -O2
    223 TOOL_VCC141_CINCS            ?= $(PATH_TOOL_VCC141_INC)
    224 TOOL_VCC141_CDEFS            ?=
    225 
    226 TOOL_VCC141_CXXOBJSUFF       ?= .obj
    227 TOOL_VCC141_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
    228 TOOL_VCC141_CXXFLAGS.debug   ?=
    229 TOOL_VCC141_CXXFLAGS.dbgopt  ?= -O2
    230 TOOL_VCC141_CXXFLAGS.release ?= -O2
    231 TOOL_VCC141_CXXFLAGS.profile ?= -O2
    232 TOOL_VCC141_CXXINCS          ?= $(PATH_TOOL_VCC141_INC) $(PATH_TOOL_VCC141_ATLMFC_INC)
    233 TOOL_VCC141_CXXDEFS          ?=
    234 
    235 TOOL_VCC141_ASOBJSUFF        ?= .obj
    236 
    237 TOOL_VCC141_RCOBJSUFF        ?= .res
    238 TOOL_VCC141_RCINCS           ?= $(PATH_TOOL_VCC141_INC) $(PATH_TOOL_VCC141_ATLMFC_INC)
    239 
    240 TOOL_VCC141_ARFLAGS          ?= -nologo
    241 TOOL_VCC141_ARFLAGS.x86      ?= -machine:x86
    242 TOOL_VCC141_ARFLAGS.amd64    ?= -machine:amd64
    243 TOOL_VCC141_ARFLAGS.arm32    ?= -machine:arm
    244 TOOL_VCC141_ARLIBSUFF        ?= .lib
    245 
    246 TOOL_VCC141_LDFLAGS          ?= -nologo
    247 TOOL_VCC141_LDFLAGS.x86      ?= -machine:x86
    248 TOOL_VCC141_LDFLAGS.amd64    ?= -machine:amd64
    249 TOOL_VCC141_LDFLAGS.arm32    ?= -machine:arm
    250 TOOL_VCC141_LDFLAGS.debug    ?= -debug
    251 TOOL_VCC141_LDFLAGS.dbgopt   ?= -debug
    252 TOOL_VCC141_LDFLAGS.profile  ?= -debug
    253 TOOL_VCC141_LDFLAGS.release  ?=
     219TOOL_VCC140_COBJSUFF         ?= .obj
     220TOOL_VCC140_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
     221TOOL_VCC140_CFLAGS.debug     ?=
     222TOOL_VCC140_CFLAGS.dbgopt    ?= -O2
     223TOOL_VCC140_CFLAGS.release   ?= -O2
     224TOOL_VCC140_CFLAGS.profile   ?= -O2
     225TOOL_VCC140_CINCS            ?= $(PATH_TOOL_VCC140_INC)
     226TOOL_VCC140_CDEFS            ?=
     227
     228TOOL_VCC140_CXXOBJSUFF       ?= .obj
     229TOOL_VCC140_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
     230TOOL_VCC140_CXXFLAGS.debug   ?=
     231TOOL_VCC140_CXXFLAGS.dbgopt  ?= -O2
     232TOOL_VCC140_CXXFLAGS.release ?= -O2
     233TOOL_VCC140_CXXFLAGS.profile ?= -O2
     234TOOL_VCC140_CXXINCS          ?= $(PATH_TOOL_VCC140_INC) $(PATH_TOOL_VCC140_ATLMFC_INC)
     235TOOL_VCC140_CXXDEFS          ?=
     236
     237TOOL_VCC140_ASOBJSUFF        ?= .obj
     238
     239TOOL_VCC140_RCOBJSUFF        ?= .res
     240TOOL_VCC140_RCINCS           ?= $(PATH_TOOL_VCC140_INC) $(PATH_TOOL_VCC140_ATLMFC_INC)
     241
     242TOOL_VCC140_ARFLAGS          ?= -nologo
     243TOOL_VCC140_ARFLAGS.x86      ?= -machine:x86
     244TOOL_VCC140_ARFLAGS.amd64    ?= -machine:amd64
     245TOOL_VCC140_ARFLAGS.arm32    ?= -machine:arm
     246TOOL_VCC140_ARLIBSUFF        ?= .lib
     247
     248TOOL_VCC140_LDFLAGS          ?= -nologo
     249TOOL_VCC140_LDFLAGS.x86      ?= -machine:x86
     250TOOL_VCC140_LDFLAGS.amd64    ?= -machine:amd64
     251TOOL_VCC140_LDFLAGS.arm32    ?= -machine:arm
     252TOOL_VCC140_LDFLAGS.debug    ?= -debug
     253TOOL_VCC140_LDFLAGS.dbgopt   ?= -debug
     254TOOL_VCC140_LDFLAGS.profile  ?= -debug
     255TOOL_VCC140_LDFLAGS.release  ?=
    254256
    255257
     
    268270# @param    $(outbase)  Output basename (full). Use this for list files and such.
    269271# @param    $(objsuff)  Object suffix.
    270 TOOL_VCC141_COMPILE_C_DEPEND =
    271 TOOL_VCC141_COMPILE_C_DEPORD =
    272 TOOL_VCC141_COMPILE_C_OUTPUT =
    273 TOOL_VCC141_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb)
    274 ifdef TOOL_VCC141_KSUBMIT
    275  TOOL_VCC141_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
    276  define TOOL_VCC141_COMPILE_C_CMDS
    277         $(QUIET)$(TOOL_VCC141_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    278                 -- $(TOOL_VCC141_CC) -c\
     272TOOL_VCC140_COMPILE_C_DEPEND =
     273TOOL_VCC140_COMPILE_C_DEPORD =
     274TOOL_VCC140_COMPILE_C_OUTPUT =
     275TOOL_VCC140_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC140_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC140_PDB, $(outbase)-obj,idb)
     276ifdef TOOL_VCC140_KSUBMIT
     277 TOOL_VCC140_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
     278 define TOOL_VCC140_COMPILE_C_CMDS
     279        $(QUIET)$(TOOL_VCC140_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     280                -- $(TOOL_VCC140_CC) -c\
    279281                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    280282                -Fd$(outbase)-obj.pdb \
     
    283285 endef
    284286else
    285  define TOOL_VCC141_COMPILE_C_CMDS
    286         $(QUIET)$(TOOL_VCC141_SETUP_ENV) $(TOOL_VCC141_CC) -c\
     287 define TOOL_VCC140_COMPILE_C_CMDS
     288        $(QUIET)$(TOOL_VCC140_SETUP_ENV) $(TOOL_VCC140_CC) -c\
    287289                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    288290                -Fd$(outbase)-obj.pdb \
     
    291293        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    292294 endef
    293 endif # !TOOL_VCC141_KSUBMIT
     295endif # !TOOL_VCC140_KSUBMIT
    294296
    295297
     
    307309# @param    $(outbase)  Output basename (full). Use this for list files and such.
    308310# @param    $(objsuff)  Object suffix.
    309 TOOL_VCC141_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    310 TOOL_VCC141_COMPILE_CXX_DEPORD =
    311 TOOL_VCC141_COMPILE_CXX_OUTPUT =
    312 TOOL_VCC141_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
    313         ,,$(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb))
    314 ifdef TOOL_VCC141_KSUBMIT
    315  TOOL_VCC141_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
    316  define TOOL_VCC141_COMPILE_CXX_CMDS
    317         $(QUIET)$(TOOL_VCC141_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    318                 -- $(TOOL_VCC141_CXX) -c\
     311TOOL_VCC140_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
     312TOOL_VCC140_COMPILE_CXX_DEPORD =
     313TOOL_VCC140_COMPILE_CXX_OUTPUT =
     314TOOL_VCC140_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     315        ,,$(call TOOL_VCC140_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC140_PDB, $(outbase)-obj,idb))
     316ifdef TOOL_VCC140_KSUBMIT
     317 TOOL_VCC140_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
     318 define TOOL_VCC140_COMPILE_CXX_CMDS
     319        $(QUIET)$(TOOL_VCC140_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     320                -- $(TOOL_VCC140_CXX) -c\
    319321                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    320322                $(if-expr defined($(target)_PCH_HDR)\
     
    325327 endef
    326328else
    327  define TOOL_VCC141_COMPILE_CXX_CMDS
    328         $(QUIET)$(TOOL_VCC141_SETUP_ENV) $(TOOL_VCC141_CXX) -c\
     329 define TOOL_VCC140_COMPILE_CXX_CMDS
     330        $(QUIET)$(TOOL_VCC140_SETUP_ENV) $(TOOL_VCC140_CXX) -c\
    329331                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    330332                $(if-expr defined($(target)_PCH_HDR)\
     
    335337        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    336338 endef
    337 endif # !TOOL_VCC141_KSUBMIT
     339endif # !TOOL_VCC140_KSUBMIT
    338340
    339341
     
    344346# related _1_VCC_PCH_FILE and add -Yc.
    345347#
    346 TOOL_VCC141-PCH                         := Helper for creating precompiled header using CXX handling.
    347 TOOL_VCC141-PCH_EXTENDS                 := VCC141
    348 TOOL_VCC141-PCH_CXXOBJSUFF              := .obj
    349 TOOL_VCC141-PCH_CXXINCS                  = $(TOOL_VCC141_CXXINCS)
    350 TOOL_VCC141-PCH_CXXFLAGS                 = $(TOOL_VCC141_CXXFLAGS) -FS
    351 TOOL_VCC141-PCH_CXXFLAGS.debug           = $(TOOL_VCC141_CXXFLAGS.debug)
    352 TOOL_VCC141-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC141_CXXFLAGS.dbgopt)
    353 TOOL_VCC141-PCH_CXXFLAGS.release         = $(TOOL_VCC141_CXXFLAGS.release)
    354 TOOL_VCC141-PCH_CXXFLAGS.profile         = $(TOOL_VCC141_CXXFLAGS.profile)
    355 TOOL_VCC141-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
    356 TOOL_VCC141-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
    357 TOOL_VCC141-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    358 TOOL_VCC141-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
    359 ifdef TOOL_VCC141_KSUBMIT
    360  define TOOL_VCC141-PCH_COMPILE_CXX_CMDS
     348TOOL_VCC140-PCH                         := Helper for creating precompiled header using CXX handling.
     349TOOL_VCC140-PCH_EXTENDS                 := VCC140
     350TOOL_VCC140-PCH_CXXOBJSUFF              := .obj
     351TOOL_VCC140-PCH_CXXINCS                  = $(TOOL_VCC140_CXXINCS)
     352TOOL_VCC140-PCH_CXXFLAGS                 = $(TOOL_VCC140_CXXFLAGS) -FS
     353TOOL_VCC140-PCH_CXXFLAGS.debug           = $(TOOL_VCC140_CXXFLAGS.debug)
     354TOOL_VCC140-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC140_CXXFLAGS.dbgopt)
     355TOOL_VCC140-PCH_CXXFLAGS.release         = $(TOOL_VCC140_CXXFLAGS.release)
     356TOOL_VCC140-PCH_CXXFLAGS.profile         = $(TOOL_VCC140_CXXFLAGS.profile)
     357TOOL_VCC140-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     358TOOL_VCC140-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     359TOOL_VCC140-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     360TOOL_VCC140-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     361ifdef TOOL_VCC140_KSUBMIT
     362 define TOOL_VCC140-PCH_COMPILE_CXX_CMDS
    361363        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    362         $(QUIET)$(TOOL_VCC141_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
    363                 -- $(TOOL_VCC141_CXX) -c -Yc\
     364        $(QUIET)$(TOOL_VCC140_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     365                -- $(TOOL_VCC140_CXX) -c -Yc\
    364366                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    365367               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    370372 endef
    371373else
    372  define TOOL_VCC141-PCH_COMPILE_CXX_CMDS
     374 define TOOL_VCC140-PCH_COMPILE_CXX_CMDS
    373375        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    374         $(QUIET)$(TOOL_VCC141_SETUP_ENV) $(TOOL_VCC141_CXX) -c -Yc\
     376        $(QUIET)$(TOOL_VCC140_SETUP_ENV) $(TOOL_VCC140_CXX) -c -Yc\
    375377                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    376378               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    382384
    383385 endef
    384 endif # !TOOL_VCC141_KSUBMIT
     386endif # !TOOL_VCC140_KSUBMIT
    385387
    386388
     
    400402# @param    $(outbase)  Output basename (full). Use this for list files and such.
    401403# @param    $(objsuff)  Object suffix.
    402 TOOL_VCC141_COMPILE_RC_DEPEND =
    403 TOOL_VCC141_COMPILE_RC_DEPORD =
    404 TOOL_VCC141_COMPILE_RC_OUTPUT =
    405 define TOOL_VCC141_COMPILE_RC_CMDS
    406         $(QUIET)$(TOOL_VCC141_RC) \
     404TOOL_VCC140_COMPILE_RC_DEPEND =
     405TOOL_VCC140_COMPILE_RC_DEPORD =
     406TOOL_VCC140_COMPILE_RC_OUTPUT =
     407define TOOL_VCC140_COMPILE_RC_CMDS
     408        $(QUIET)$(TOOL_VCC140_RC) \
    407409                $(flags) $(qaddprefix sh,/i, $(subst /,\\,$(incs))) $(qaddprefix sh,/d, $(defs))\
    408410                /fo$(obj)\
     
    421423# @param    $(outbase)  Output basename (full). Use this for list files and such.
    422424#
    423 TOOL_VCC141_LINK_LIBRARY_DEPEND = $(othersrc)
    424 TOOL_VCC141_LINK_LIBRARY_DEPORD =
    425 TOOL_VCC141_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    426 TOOL_VCC141_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
    427 define TOOL_VCC141_LINK_LIBRARY_CMDS
     425TOOL_VCC140_LINK_LIBRARY_DEPEND = $(othersrc)
     426TOOL_VCC140_LINK_LIBRARY_DEPORD =
     427TOOL_VCC140_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     428TOOL_VCC140_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
     429define TOOL_VCC140_LINK_LIBRARY_CMDS
    428430        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    429431                $(qforeachfile u,arg, $(objs) $(filter-out %.def,$(othersrc)),$(quote-sh "$(subst /,\,$(arg))")) \
    430432                $(qforeachfile u,arg, $(filter %.def,$(othersrc)),$(quote-sh "/DEF:$(subst /,\,$(arg))"))
    431         $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_AR) $(flags) /OUT:$(out) @$(outbase).rsp
     433        $(QUIET)$(TOOL_VCC140_KSUBMIT_DD) $(TOOL_VCC140_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    432434endef
    433435
     
    447449# @param    $(outbase)      Output basename (full). Use this for list files and such.
    448450#
    449 TOOL_VCC141_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    450 TOOL_VCC141_LINK_PROGRAM_DEPORD =
    451 TOOL_VCC141_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    452 TOOL_VCC141_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    453 TOOL_VCC141_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
    454 TOOL_VCC141_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    455 define TOOL_VCC141_LINK_PROGRAM_CMDS
     451TOOL_VCC140_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     452TOOL_VCC140_LINK_PROGRAM_DEPORD =
     453TOOL_VCC140_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     454TOOL_VCC140_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     455TOOL_VCC140_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
     456TOOL_VCC140_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     457define TOOL_VCC140_LINK_PROGRAM_CMDS
    456458        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    457459                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    458         $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \
     460        $(QUIET)$(TOOL_VCC140_KSUBMIT_DD) $(TOOL_VCC140_LD) $(flags) \
    459461                /OUT:$(out) \
    460462                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    464466                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    465467                @$(outbase).rsp
    466 ifndef TOOL_VCC141_NO_AUTO_MANIFEST
     468ifndef TOOL_VCC140_NO_AUTO_MANIFEST
    467469        $(QUIET)$(TEST) -f $(out).manifest -- \
    468                 $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
     470                $(TOOL_VCC140_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
    469471endif
    470472endef
     
    485487#
    486488# @param    $(outbase)  Output basename (full). Use this for list files and such.
    487 TOOL_VCC141_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    488 TOOL_VCC141_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
    489 TOOL_VCC141_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
    490 TOOL_VCC141_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
    491 TOOL_VCC141_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
    492 TOOL_VCC141_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
    493 TOOL_VCC141_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    494 define TOOL_VCC141_LINK_DLL_CMDS
     489TOOL_VCC140_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     490TOOL_VCC140_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
     491TOOL_VCC140_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
     492TOOL_VCC140_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
     493TOOL_VCC140_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
     494TOOL_VCC140_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
     495TOOL_VCC140_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     496define TOOL_VCC140_LINK_DLL_CMDS
    495497        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    496498                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    497         $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \
     499        $(QUIET)$(TOOL_VCC140_KSUBMIT_DD) $(TOOL_VCC140_LD) $(flags) \
    498500                /OUT:$(out) \
    499501                /IMPLIB:$(outbase).lib \
     
    505507                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    506508                @$(outbase).rsp
    507 ifndef TOOL_VCC141_NO_AUTO_MANIFEST
     509ifndef TOOL_VCC140_NO_AUTO_MANIFEST
    508510        $(QUIET)$(TEST) -f $(out).manifest -- \
    509                 $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     511                $(TOOL_VCC140_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    510512endif
    511513        $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib
     
    529531#
    530532# @param    $(outbase)  Output basename (full). Use this for list files and such.
    531 TOOL_VCC141_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    532 TOOL_VCC141_LINK_SYSMOD_DEPORD =
    533 TOOL_VCC141_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    534 TOOL_VCC141_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    535 TOOL_VCC141_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
    536 TOOL_VCC141_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    537 define TOOL_VCC141_LINK_SYSMOD_CMDS
     533TOOL_VCC140_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     534TOOL_VCC140_LINK_SYSMOD_DEPORD =
     535TOOL_VCC140_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     536TOOL_VCC140_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     537TOOL_VCC140_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
     538TOOL_VCC140_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     539define TOOL_VCC140_LINK_SYSMOD_CMDS
    538540        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    539541                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    540         $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \
     542        $(QUIET)$(TOOL_VCC140_KSUBMIT_DD) $(TOOL_VCC140_LD) $(flags) \
    541543                /OUT:$(out) \
    542544                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    546548                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    547549                @$(outbase).rsp
    548 ifndef TOOL_VCC141_NO_AUTO_MANIFEST
     550ifndef TOOL_VCC140_NO_AUTO_MANIFEST
    549551        $(QUIET)$(TEST) -f $(out).manifest -- \
    550                 $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     552                $(TOOL_VCC140_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    551553endif
    552554endef
  • trunk/kBuild/tools/VCC140AMD64.kmk

    r3340 r3343  
    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.0 (aka Visual 2015 and MSC v19.0x), 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_VCC140
     35 include $(KBUILD_PATH)/tools/VCC140.kmk
     36endif
     37
     38TOOL_VCC140AMD64 := Visual C++ 14.0 (aka Visual 2015 and MSC v19.0x), targeting AMD64
    3939
    4040#
    4141# Tool Specific Properties
    4242#
    43 ifndef PATH_TOOL_VCC141AMD64
    44  PATH_TOOL_VCC141AMD64 := $(PATH_TOOL_VCC141)
     43ifndef PATH_TOOL_VCC140AMD64_BIN
     44 ifeq ($(KBUILD_HOST_ARCH),amd64)
     45PATH_TOOL_VCC140AMD64_BIN     := $(PATH_TOOL_VCC140_BASE_BIN)/amd64
     46 else
     47PATH_TOOL_VCC140AMD64_BIN     := $(PATH_TOOL_VCC140_BASE_BIN)/x86_amd64
     48 endif
    4549else
    46  # 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
    52 else
    53 PATH_TOOL_VCC141AMD64_BIN     := $(PATH_TOOL_VCC141_BIN)
    54 endif
    55 PATH_TOOL_VCC141AMD64_BIN_QSH := $(requote sh,$(PATH_TOOL_VCC141AMD64_BIN))
     50PATH_TOOL_VCC140AMD64_BIN     := $(PATH_TOOL_VCC140AMD64_BIN)
     51endif
     52PATH_TOOL_VCC140AMD64_BIN_QSH := $(requote sh,$(PATH_TOOL_VCC140AMD64_BIN))
    5653
    5754# 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)
     55ifndef PATH_TOOL_VCC140AMD64_DLL_BIN
     56 ifneq ($(PATH_TOOL_VCC140_HOST_DLL_BIN),$(PATH_TOOL_VCC140AMD64_BIN))
     57PATH_TOOL_VCC140AMD64_DLL_BIN := $(PATH_TOOL_VCC140_HOST_DLL_BIN)
    6158 endif
    6259endif
    6360
    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
     61ifndef PATH_TOOL_VCC140AMD64_LIB
     62PATH_TOOL_VCC140AMD64_LIB     := $(PATH_TOOL_VCC140_LIB.amd64)
     63endif
     64ifndef PATH_TOOL_VCC140_ONECORE_LIB
     65PATH_TOOL_VCC140_ONECORE_LIB  := $(PATH_TOOL_VCC140_ONECORE_LIB.amd64)
     66endif
     67
     68ifndef PATH_TOOL_VCC140AMD64_INC
     69PATH_TOOL_VCC140AMD64_INC     := $(PATH_TOOL_VCC140_INC)
     70endif
     71
     72ifndef PATH_TOOL_VCC140AMD64_ATLMFC_INC
     73PATH_TOOL_VCC140AMD64_ATLMFC_INC := $(PATH_TOOL_VCC140_ATLMFC_INC.amd64)
     74endif
     75ifndef PATH_TOOL_VCC140AMD64_ATLMFC_LIB
     76PATH_TOOL_VCC140AMD64_ATLMFC_LIB := $(PATH_TOOL_VCC140_ATLMFC_LIB.amd64)
     77endif
     78
     79TOOL_VCC140AMD64_CC      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140AMD64_BIN_QSH)/cl.exe
     80TOOL_VCC140AMD64_CXX     ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140AMD64_BIN_QSH)/cl.exe
     81TOOL_VCC140AMD64_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140AMD64_BIN_QSH)/ml64.exe
     82#TOOL_VCC140AMD64_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140AMD64_BIN_QSH)/lib.exe - just an exec wrapper for the below
     83TOOL_VCC140AMD64_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140AMD64_BIN_QSH)/link.exe /LIB
     84TOOL_VCC140AMD64_LD      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140AMD64_BIN_QSH)/link.exe
     85TOOL_VCC140AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140AMD64_BIN_QSH)/dumpbin.exe
     86TOOL_VCC140AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140AMD64_BIN_QSH)/editbin.exe
     87
     88TOOL_VCC140AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC140_RC_CACHED)
     89TOOL_VCC140AMD64_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC140_MT_CACHED)
     90
     91undefine TOOL_VCC140AMD64_USE_KSUBMIT # for now
     92ifdef TOOL_VCC140AMD64_USE_KSUBMIT
    9693 ifeq ($(KBUILD_HOST),win)
    97   ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC141AMD64_BIN)),-3),64/)
    98    TOOL_VCC141AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
     94  ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC140AMD64_BIN)),-3),64/)
     95   TOOL_VCC140AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
    9996  else
    100    TOOL_VCC141AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
     97   TOOL_VCC140AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
    10198  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));"
     99  ifdef PATH_TOOL_VCC140AMD64_DLL_BIN
     100   TOOL_VCC140AMD64_KSUBMIT := $(TOOL_VCC140AMD64_KSUBMIT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC140AMD64_DLL_BIN));"
    104101  endif
    105   TOOL_VCC141AMD64_KSUBMIT_DD := $(TOOL_VCC141AMD64_KSUBMIT) --
     102  TOOL_VCC140AMD64_KSUBMIT_DD := $(TOOL_VCC140AMD64_KSUBMIT) --
    106103 endif
    107104endif
    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)
     105ifdef PATH_TOOL_VCC140AMD64_DLL_BIN
     106 TOOL_VCC140AMD64_SETUP_ENV   := $(REDIRECT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC140AMD64_DLL_BIN));" --$(SP)
     107 ifndef TOOL_VCC140AMD64_KSUBMIT_DD
     108  TOOL_VCC140AMD64_KSUBMIT_DD := $(TOOL_VCC140AMD64_SETUP_ENV)
    112109 endif
    113110endif
    114111
    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)
    120 TOOL_VCC141AMD64_REDIST_CRT_DLLS        = $(TOOL_VCC141_REDIST_CRT_DLLS.amd64)
    121 TOOL_VCC141AMD64_REDIST_CONCRT_DLLS     = $(TOOL_VCC141_REDIST_CONCRT_DLLS.amd64)
    122 TOOL_VCC141AMD64_REDIST_CPP_DLLS        = $(TOOL_VCC141_REDIST_CPP_DLLS.amd64)
    123 TOOL_VCC141AMD64_REDIST_WINRT_DLLS      = $(TOOL_VCC141_REDIST_WINRT_DLLS.amd64)
     112# Redist (more stuff in VCC140.kmk).
     113PATH_TOOL_VCC140AMD64_REDIST           ?= $(PATH_TOOL_VCC140_REDIST)/x64
     114PATH_TOOL_VCC140AMD64_REDIST_CRT        = $(PATH_TOOL_VCC140AMD64_REDIST)/$(TOOL_VCC140_REDIST_CRT_SUBDIR)
     115PATH_TOOL_VCC140AMD64_REDIST_DEBUG     ?= $(PATH_TOOL_VCC140_REDIST_DEBUG)/x64
     116PATH_TOOL_VCC140AMD64_REDIST_DEBUG_CRT  = $(PATH_TOOL_VCC140AMD64_REDIST_DEBUG)/$(TOOL_VCC140_REDIST_CRT_SUBDIR)
     117TOOL_VCC140AMD64_REDIST_CRT_DLLS        = $(TOOL_VCC140_REDIST_CRT_DLLS.amd64)
     118TOOL_VCC140AMD64_REDIST_CONCRT_DLLS     = $(TOOL_VCC140_REDIST_CONCRT_DLLS.amd64)
     119TOOL_VCC140AMD64_REDIST_CPP_DLLS        = $(TOOL_VCC140_REDIST_CPP_DLLS.amd64)
     120TOOL_VCC140AMD64_REDIST_WINRT_DLLS      = $(TOOL_VCC140_REDIST_WINRT_DLLS.amd64)
    124121
    125122
     
    127124# Properties used by kBuild
    128125#
    129 TOOL_VCC141AMD64_COBJSUFF         ?= .obj
    130 TOOL_VCC141AMD64_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
    131 TOOL_VCC141AMD64_CFLAGS.debug     ?=
    132 TOOL_VCC141AMD64_CFLAGS.dbgopt    ?= -O2
    133 TOOL_VCC141AMD64_CFLAGS.release   ?= -O2
    134 TOOL_VCC141AMD64_CFLAGS.profile   ?= -O2
    135 TOOL_VCC141AMD64_CINCS            ?= $(PATH_TOOL_VCC141AMD64_INC)
    136 TOOL_VCC141AMD64_CDEFS            ?=
    137 
    138 TOOL_VCC141AMD64_CXXOBJSUFF       ?= .obj
    139 TOOL_VCC141AMD64_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
    140 TOOL_VCC141AMD64_CXXFLAGS.debug   ?=
    141 TOOL_VCC141AMD64_CXXFLAGS.dbgopt  ?= -O2
    142 TOOL_VCC141AMD64_CXXFLAGS.release ?= -O2
    143 TOOL_VCC141AMD64_CXXFLAGS.profile ?= -O2
    144 TOOL_VCC141AMD64_CXXINCS          ?= $(PATH_TOOL_VCC141AMD64_INC) $(PATH_TOOL_VCC141AMD64_ATLMFC_INC)
    145 TOOL_VCC141AMD64_CXXDEFS          ?=
    146 
    147 TOOL_VCC141AMD64_ASOBJSUFF        ?= .obj
    148 
    149 TOOL_VCC141AMD64_RCOBJSUFF        ?= .res
    150 TOOL_VCC141AMD64_RCINCS           ?= $(PATH_TOOL_VCC141AMD64_INC) $(PATH_TOOL_VCC141AMD64_ATLMFC_INC)
    151 
    152 TOOL_VCC141AMD64_ARFLAGS          ?= -nologo -machine:amd64
    153 TOOL_VCC141AMD64_ARLIBSUFF        ?= .lib
    154 
    155 TOOL_VCC141AMD64_LDFLAGS          ?= -nologo -machine:amd64
    156 TOOL_VCC141AMD64_LDFLAGS.debug    ?= -debug
    157 TOOL_VCC141AMD64_LDFLAGS.dbgopt   ?= -debug
    158 TOOL_VCC141AMD64_LDFLAGS.profile  ?= -debug
    159 TOOL_VCC141AMD64_LDFLAGS.release  ?=
     126TOOL_VCC140AMD64_COBJSUFF         ?= .obj
     127TOOL_VCC140AMD64_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
     128TOOL_VCC140AMD64_CFLAGS.debug     ?=
     129TOOL_VCC140AMD64_CFLAGS.dbgopt    ?= -O2
     130TOOL_VCC140AMD64_CFLAGS.release   ?= -O2
     131TOOL_VCC140AMD64_CFLAGS.profile   ?= -O2
     132TOOL_VCC140AMD64_CINCS            ?= $(PATH_TOOL_VCC140AMD64_INC)
     133TOOL_VCC140AMD64_CDEFS            ?=
     134
     135TOOL_VCC140AMD64_CXXOBJSUFF       ?= .obj
     136TOOL_VCC140AMD64_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
     137TOOL_VCC140AMD64_CXXFLAGS.debug   ?=
     138TOOL_VCC140AMD64_CXXFLAGS.dbgopt  ?= -O2
     139TOOL_VCC140AMD64_CXXFLAGS.release ?= -O2
     140TOOL_VCC140AMD64_CXXFLAGS.profile ?= -O2
     141TOOL_VCC140AMD64_CXXINCS          ?= $(PATH_TOOL_VCC140AMD64_INC) $(PATH_TOOL_VCC140AMD64_ATLMFC_INC)
     142TOOL_VCC140AMD64_CXXDEFS          ?=
     143
     144TOOL_VCC140AMD64_ASOBJSUFF        ?= .obj
     145
     146TOOL_VCC140AMD64_RCOBJSUFF        ?= .res
     147TOOL_VCC140AMD64_RCINCS           ?= $(PATH_TOOL_VCC140AMD64_INC) $(PATH_TOOL_VCC140AMD64_ATLMFC_INC)
     148
     149TOOL_VCC140AMD64_ARFLAGS          ?= -nologo -machine:amd64
     150TOOL_VCC140AMD64_ARLIBSUFF        ?= .lib
     151
     152TOOL_VCC140AMD64_LDFLAGS          ?= -nologo -machine:amd64
     153TOOL_VCC140AMD64_LDFLAGS.debug    ?= -debug
     154TOOL_VCC140AMD64_LDFLAGS.dbgopt   ?= -debug
     155TOOL_VCC140AMD64_LDFLAGS.profile  ?= -debug
     156TOOL_VCC140AMD64_LDFLAGS.release  ?=
    160157
    161158
     
    174171# @param    $(outbase)  Output basename (full). Use this for list files and such.
    175172# @param    $(objsuff)  Object suffix.
    176 TOOL_VCC141AMD64_COMPILE_C_DEPEND =
    177 TOOL_VCC141AMD64_COMPILE_C_DEPORD =
    178 TOOL_VCC141AMD64_COMPILE_C_OUTPUT =
    179 TOOL_VCC141AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb)
    180 ifdef TOOL_VCC141AMD64_KSUBMIT
    181  TOOL_VCC141AMD64_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
    182  define TOOL_VCC141AMD64_COMPILE_C_CMDS
    183         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    184                 -- $(TOOL_VCC141AMD64_CC) -c\
     173TOOL_VCC140AMD64_COMPILE_C_DEPEND =
     174TOOL_VCC140AMD64_COMPILE_C_DEPORD =
     175TOOL_VCC140AMD64_COMPILE_C_OUTPUT =
     176TOOL_VCC140AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC140_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC140_PDB, $(outbase)-obj,idb)
     177ifdef TOOL_VCC140AMD64_KSUBMIT
     178 TOOL_VCC140AMD64_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
     179 define TOOL_VCC140AMD64_COMPILE_C_CMDS
     180        $(QUIET)$(TOOL_VCC140AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     181                -- $(TOOL_VCC140AMD64_CC) -c\
    185182                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    186183                -Fd$(outbase)-obj.pdb \
     
    189186 endef
    190187else
    191  define TOOL_VCC141AMD64_COMPILE_C_CMDS
    192         $(QUIET)$(TOOL_VCC141AMD64_SETUP_ENV)$(TOOL_VCC141AMD64_CC) -c\
     188 define TOOL_VCC140AMD64_COMPILE_C_CMDS
     189        $(QUIET)$(TOOL_VCC140AMD64_SETUP_ENV)$(TOOL_VCC140AMD64_CC) -c\
    193190                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    194191                -Fd$(outbase)-obj.pdb \
     
    197194        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    198195 endef
    199 endif # !TOOL_VCC141AMD64_KSUBMIT
     196endif # !TOOL_VCC140AMD64_KSUBMIT
    200197
    201198
     
    213210# @param    $(outbase)  Output basename (full). Use this for list files and such.
    214211# @param    $(objsuff)  Object suffix.
    215 TOOL_VCC141AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    216 TOOL_VCC141AMD64_COMPILE_CXX_DEPORD =
    217 TOOL_VCC141AMD64_COMPILE_CXX_OUTPUT =
    218 TOOL_VCC141AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
    219         ,,$(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb))
    220 ifdef TOOL_VCC141AMD64_KSUBMIT
    221  TOOL_VCC141AMD64_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
    222  define TOOL_VCC141AMD64_COMPILE_CXX_CMDS
    223         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    224                 -- $(TOOL_VCC141AMD64_CXX) -c\
     212TOOL_VCC140AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
     213TOOL_VCC140AMD64_COMPILE_CXX_DEPORD =
     214TOOL_VCC140AMD64_COMPILE_CXX_OUTPUT =
     215TOOL_VCC140AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     216        ,,$(call TOOL_VCC140_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC140_PDB, $(outbase)-obj,idb))
     217ifdef TOOL_VCC140AMD64_KSUBMIT
     218 TOOL_VCC140AMD64_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
     219 define TOOL_VCC140AMD64_COMPILE_CXX_CMDS
     220        $(QUIET)$(TOOL_VCC140AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     221                -- $(TOOL_VCC140AMD64_CXX) -c\
    225222                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    226223                $(if-expr defined($(target)_PCH_HDR)\
     
    231228 endef
    232229else
    233  define TOOL_VCC141AMD64_COMPILE_CXX_CMDS
    234         $(QUIET)$(TOOL_VCC141AMD64_SETUP_ENV)$(TOOL_VCC141AMD64_CXX) -c\
     230 define TOOL_VCC140AMD64_COMPILE_CXX_CMDS
     231        $(QUIET)$(TOOL_VCC140AMD64_SETUP_ENV)$(TOOL_VCC140AMD64_CXX) -c\
    235232                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    236233                $(if-expr defined($(target)_PCH_HDR)\
     
    241238        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    242239 endef
    243 endif # !TOOL_VCC141AMD64_KSUBMIT
     240endif # !TOOL_VCC140AMD64_KSUBMIT
    244241
    245242
     
    250247# related _1_VCC_PCH_FILE and add -Yc.
    251248#
    252 TOOL_VCC141AMD64-PCH                         := Helper for creating precompiled header using CXX handling.
    253 TOOL_VCC141AMD64-PCH_EXTENDS                 := VCC141AMD64
    254 TOOL_VCC141AMD64-PCH_CXXOBJSUFF              := .obj
    255 TOOL_VCC141AMD64-PCH_CXXINCS                  = $(TOOL_VCC141AMD64_CXXINCS)
    256 TOOL_VCC141AMD64-PCH_CXXFLAGS                 = $(TOOL_VCC141AMD64_CXXFLAGS) -FS
    257 TOOL_VCC141AMD64-PCH_CXXFLAGS.debug           = $(TOOL_VCC141AMD64_CXXFLAGS.debug)
    258 TOOL_VCC141AMD64-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC141AMD64_CXXFLAGS.dbgopt)
    259 TOOL_VCC141AMD64-PCH_CXXFLAGS.release         = $(TOOL_VCC141AMD64_CXXFLAGS.release)
    260 TOOL_VCC141AMD64-PCH_CXXFLAGS.profile         = $(TOOL_VCC141AMD64_CXXFLAGS.profile)
    261 TOOL_VCC141AMD64-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
    262 TOOL_VCC141AMD64-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
    263 TOOL_VCC141AMD64-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    264 TOOL_VCC141AMD64-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
    265 ifdef TOOL_VCC141AMD64_KSUBMIT
    266  define TOOL_VCC141AMD64-PCH_COMPILE_CXX_CMDS
     249TOOL_VCC140AMD64-PCH                         := Helper for creating precompiled header using CXX handling.
     250TOOL_VCC140AMD64-PCH_EXTENDS                 := VCC140AMD64
     251TOOL_VCC140AMD64-PCH_CXXOBJSUFF              := .obj
     252TOOL_VCC140AMD64-PCH_CXXINCS                  = $(TOOL_VCC140AMD64_CXXINCS)
     253TOOL_VCC140AMD64-PCH_CXXFLAGS                 = $(TOOL_VCC140AMD64_CXXFLAGS)
     254TOOL_VCC140AMD64-PCH_CXXFLAGS.debug           = $(TOOL_VCC140AMD64_CXXFLAGS.debug)
     255TOOL_VCC140AMD64-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC140AMD64_CXXFLAGS.dbgopt)
     256TOOL_VCC140AMD64-PCH_CXXFLAGS.release         = $(TOOL_VCC140AMD64_CXXFLAGS.release)
     257TOOL_VCC140AMD64-PCH_CXXFLAGS.profile         = $(TOOL_VCC140AMD64_CXXFLAGS.profile)
     258TOOL_VCC140AMD64-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     259TOOL_VCC140AMD64-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     260TOOL_VCC140AMD64-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     261TOOL_VCC140AMD64-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     262ifdef TOOL_VCC140AMD64_KSUBMIT
     263 define TOOL_VCC140AMD64-PCH_COMPILE_CXX_CMDS
    267264        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    268         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
    269                 -- $(TOOL_VCC141AMD64_CXX) -c -Yc\
    270                 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
     265        $(QUIET)$(TOOL_VCC140AMD64_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     266                -- $(TOOL_VCC140AMD64_CXX) -c -Yc\
     267                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
     268                $(if-expr defined($(target)_PCH_HDR),-FI$($(target)_PCH_HDR),)\
    271269               -Fp$($(target)_1_VCC_PCH_FILE) \
    272270                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     
    276274 endef
    277275else
    278  define TOOL_VCC141AMD64-PCH_COMPILE_CXX_CMDS
     276 define TOOL_VCC140AMD64-PCH_COMPILE_CXX_CMDS
    279277        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    280         $(QUIET)$(TOOL_VCC141AMD64_SETUP_ENV)$(TOOL_VCC141AMD64_CXX) -c -Yc\
    281                 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
     278        $(QUIET)$(TOOL_VCC140AMD64_SETUP_ENV)$(TOOL_VCC140AMD64_CXX) -c -Yc\
     279                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
     280                $(if-expr defined($(target)_PCH_HDR),-FI$($(target)_PCH_HDR),)\
    282281               -Fp$($(target)_1_VCC_PCH_FILE) \
    283282                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     
    288287
    289288 endef
    290 endif # !TOOL_VCC141AMD64_KSUBMIT
     289endif # !TOOL_VCC140AMD64_KSUBMIT
    291290
    292291
     
    306305# @param    $(outbase)  Output basename (full). Use this for list files and such.
    307306# @param    $(objsuff)  Object suffix.
    308 TOOL_VCC141AMD64_COMPILE_RC_DEPEND =
    309 TOOL_VCC141AMD64_COMPILE_RC_DEPORD =
    310 TOOL_VCC141AMD64_COMPILE_RC_OUTPUT =
    311 define TOOL_VCC141AMD64_COMPILE_RC_CMDS
    312         $(QUIET)$(TOOL_VCC141AMD64_RC) \
     307TOOL_VCC140AMD64_COMPILE_RC_DEPEND =
     308TOOL_VCC140AMD64_COMPILE_RC_DEPORD =
     309TOOL_VCC140AMD64_COMPILE_RC_OUTPUT =
     310define TOOL_VCC140AMD64_COMPILE_RC_CMDS
     311        $(QUIET)$(TOOL_VCC140AMD64_RC) \
    313312                $(flags) $(qaddprefix sh,/i, $(subst /,\\,$(incs))) $(qaddprefix sh,/d, $(defs))\
    314313                /fo$(obj)\
     
    327326# @param    $(outbase)  Output basename (full). Use this for list files and such.
    328327#
    329 TOOL_VCC141AMD64_LINK_LIBRARY_DEPEND = $(othersrc)
    330 TOOL_VCC141AMD64_LINK_LIBRARY_DEPORD =
    331 TOOL_VCC141AMD64_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    332 TOOL_VCC141AMD64_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
    333 define TOOL_VCC141AMD64_LINK_LIBRARY_CMDS
     328TOOL_VCC140AMD64_LINK_LIBRARY_DEPEND = $(othersrc)
     329TOOL_VCC140AMD64_LINK_LIBRARY_DEPORD =
     330TOOL_VCC140AMD64_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     331TOOL_VCC140AMD64_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
     332define TOOL_VCC140AMD64_LINK_LIBRARY_CMDS
    334333        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    335334                $(qforeachfile u,arg, $(objs) $(filter-out %.def,$(othersrc)),$(quote-sh "$(subst /,\,$(arg))")) \
    336335                $(qforeachfile u,arg, $(filter %.def,$(othersrc)),$(quote-sh "/DEF:$(subst /,\,$(arg))"))
    337         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_AR) $(flags) /OUT:$(out) @$(outbase).rsp
     336        $(QUIET)$(TOOL_VCC140AMD64_KSUBMIT_DD) $(TOOL_VCC140AMD64_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    338337endef
    339338
     
    353352# @param    $(outbase)      Output basename (full). Use this for list files and such.
    354353#
    355 TOOL_VCC141AMD64_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    356 TOOL_VCC141AMD64_LINK_PROGRAM_DEPORD =
    357 TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    358 TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    359 TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
    360 TOOL_VCC141AMD64_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    361 define TOOL_VCC141AMD64_LINK_PROGRAM_CMDS
     354TOOL_VCC140AMD64_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     355TOOL_VCC140AMD64_LINK_PROGRAM_DEPORD =
     356TOOL_VCC140AMD64_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     357TOOL_VCC140AMD64_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     358TOOL_VCC140AMD64_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
     359TOOL_VCC140AMD64_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     360define TOOL_VCC140AMD64_LINK_PROGRAM_CMDS
    362361        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    363362                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    364         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \
     363        $(QUIET)$(TOOL_VCC140AMD64_KSUBMIT_DD) $(TOOL_VCC140AMD64_LD) $(flags) \
    365364                /OUT:$(out) \
    366365                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    370369                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    371370                @$(outbase).rsp
    372 ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST
     371ifndef TOOL_VCC140AMD64_NO_AUTO_MANIFEST
    373372        $(QUIET)$(TEST) -f $(out).manifest -- \
    374                 $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
     373                $(TOOL_VCC140AMD64_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
    375374endif
    376375endef
     
    391390#
    392391# @param    $(outbase)  Output basename (full). Use this for list files and such.
    393 TOOL_VCC141AMD64_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    394 TOOL_VCC141AMD64_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
    395 TOOL_VCC141AMD64_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
    396 TOOL_VCC141AMD64_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
    397 TOOL_VCC141AMD64_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
    398 TOOL_VCC141AMD64_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
    399 TOOL_VCC141AMD64_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    400 define TOOL_VCC141AMD64_LINK_DLL_CMDS
     392TOOL_VCC140AMD64_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     393TOOL_VCC140AMD64_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
     394TOOL_VCC140AMD64_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
     395TOOL_VCC140AMD64_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
     396TOOL_VCC140AMD64_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
     397TOOL_VCC140AMD64_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
     398TOOL_VCC140AMD64_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     399define TOOL_VCC140AMD64_LINK_DLL_CMDS
    401400        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    402401                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    403         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \
     402        $(QUIET)$(TOOL_VCC140AMD64_KSUBMIT_DD) $(TOOL_VCC140AMD64_LD) $(flags) \
    404403                /OUT:$(out) \
    405404                /IMPLIB:$(outbase).lib \
     
    411410                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    412411                @$(outbase).rsp
    413 ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST
     412ifndef TOOL_VCC140AMD64_NO_AUTO_MANIFEST
    414413        $(QUIET)$(TEST) -f $(out).manifest -- \
    415                 $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     414                $(TOOL_VCC140AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    416415endif
    417416        $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib
     
    435434#
    436435# @param    $(outbase)  Output basename (full). Use this for list files and such.
    437 TOOL_VCC141AMD64_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    438 TOOL_VCC141AMD64_LINK_SYSMOD_DEPORD =
    439 TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    440 TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    441 TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
    442 TOOL_VCC141AMD64_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    443 define TOOL_VCC141AMD64_LINK_SYSMOD_CMDS
     436TOOL_VCC140AMD64_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     437TOOL_VCC140AMD64_LINK_SYSMOD_DEPORD =
     438TOOL_VCC140AMD64_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     439TOOL_VCC140AMD64_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     440TOOL_VCC140AMD64_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
     441TOOL_VCC140AMD64_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     442define TOOL_VCC140AMD64_LINK_SYSMOD_CMDS
    444443        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    445444                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    446         $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \
     445        $(QUIET)$(TOOL_VCC140AMD64_KSUBMIT_DD) $(TOOL_VCC140AMD64_LD) $(flags) \
    447446                /OUT:$(out) \
    448447                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    452451                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    453452                @$(outbase).rsp
    454 ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST
     453ifndef TOOL_VCC140AMD64_NO_AUTO_MANIFEST
    455454        $(QUIET)$(TEST) -f $(out).manifest -- \
    456                 $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     455                $(TOOL_VCC140AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    457456endif
    458457endef
  • trunk/kBuild/tools/VCC140X86.kmk

    r3340 r3343  
    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.0 (aka Visual 2015 and MSC v19.0x), 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_VCC140
     35 include $(KBUILD_PATH)/tools/VCC140.kmk
     36endif
     37
     38TOOL_VCC140X86 := Visual C++ 14.0 (aka Visual 2015 and MSC v19.0x), targeting x86
    3939
    4040#
    4141# Tool Specific Properties
    4242#
    43 ifndef PATH_TOOL_VCC141X86
    44  PATH_TOOL_VCC141X86 := $(PATH_TOOL_VCC141)
     43ifndef PATH_TOOL_VCC140X86_BIN
     44 ifeq ($(KBUILD_HOST_ARCH),amd64)
     45PATH_TOOL_VCC140X86_BIN     := $(PATH_TOOL_VCC140_BASE_BIN)/amd64_x86
     46 else
     47PATH_TOOL_VCC140X86_BIN     := $(PATH_TOOL_VCC140_BASE_BIN)
     48 endif
    4549else
    46  # 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
    52 else
    53 PATH_TOOL_VCC141X86_BIN     := $(PATH_TOOL_VCC141_BIN)
    54 endif
    55 PATH_TOOL_VCC141X86_BIN_QSH := $(requote sh,$(PATH_TOOL_VCC141X86_BIN))
     50PATH_TOOL_VCC140X86_BIN     := $(PATH_TOOL_VCC140X86_BIN)
     51endif
     52PATH_TOOL_VCC140X86_BIN_QSH := $(requote sh,$(PATH_TOOL_VCC140X86_BIN))
    5653
    5754# 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)
     55ifndef PATH_TOOL_VCC140X86_DLL_BIN
     56 ifneq ($(PATH_TOOL_VCC140_HOST_DLL_BIN),$(PATH_TOOL_VCC140X86_BIN))
     57PATH_TOOL_VCC140X86_DLL_BIN := $(PATH_TOOL_VCC140_HOST_DLL_BIN)
    6158 endif
    6259endif
    6360
    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
     61ifndef PATH_TOOL_VCC140X86_LIB
     62PATH_TOOL_VCC140X86_LIB     := $(PATH_TOOL_VCC140_LIB.x86)
     63endif
     64ifndef PATH_TOOL_VCC140_ONECORE_LIB
     65PATH_TOOL_VCC140_ONECORE_LIB  := $(PATH_TOOL_VCC140_ONECORE_LIB.x86)
     66endif
     67
     68ifndef PATH_TOOL_VCC140X86_INC
     69PATH_TOOL_VCC140X86_INC     := $(PATH_TOOL_VCC140_INC)
     70endif
     71
     72ifndef PATH_TOOL_VCC140X86_ATLMFC_INC
     73PATH_TOOL_VCC140X86_ATLMFC_INC := $(PATH_TOOL_VCC140_ATLMFC_INC.x86)
     74endif
     75ifndef PATH_TOOL_VCC140X86_ATLMFC_LIB
     76PATH_TOOL_VCC140X86_ATLMFC_LIB := $(PATH_TOOL_VCC140_ATLMFC_LIB.x86)
     77endif
     78
     79TOOL_VCC140X86_CC      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140X86_BIN_QSH)/cl.exe
     80TOOL_VCC140X86_CXX     ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140X86_BIN_QSH)/cl.exe
     81TOOL_VCC140X86_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140X86_BIN_QSH)/ml.exe
     82#TOOL_VCC140X86_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140X86_BIN_QSH)/lib.exe - just an exec wrapper for the below
     83TOOL_VCC140X86_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140X86_BIN_QSH)/link.exe /LIB
     84TOOL_VCC140X86_LD      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140X86_BIN_QSH)/link.exe
     85TOOL_VCC140X86_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140X86_BIN_QSH)/dumpbin.exe
     86TOOL_VCC140X86_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140X86_BIN_QSH)/editbin.exe
     87
     88TOOL_VCC140X86_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC140_RC_CACHED)
     89TOOL_VCC140X86_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC140_MT_CACHED)
     90
     91undefine TOOL_VCC140X86_USE_KSUBMIT # for now
     92ifdef TOOL_VCC140X86_USE_KSUBMIT
    9693 ifeq ($(KBUILD_HOST),win)
    97   ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC141X86_BIN)),-3),64/)
    98    TOOL_VCC141X86_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
     94  ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC140X86_BIN)),-3),64/)
     95   TOOL_VCC140X86_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
    9996  else
    100    TOOL_VCC141X86_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
     97   TOOL_VCC140X86_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
    10198  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));"
     99  ifdef PATH_TOOL_VCC140X86_DLL_BIN
     100   TOOL_VCC140X86_KSUBMIT := $(TOOL_VCC140X86_KSUBMIT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC140X86_DLL_BIN));"
    104101  endif
    105   TOOL_VCC141X86_KSUBMIT_DD := $(TOOL_VCC141X86_KSUBMIT) --
     102  TOOL_VCC140X86_KSUBMIT_DD := $(TOOL_VCC140X86_KSUBMIT) --
    106103 endif
    107104endif
    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)
     105ifdef PATH_TOOL_VCC140X86_DLL_BIN
     106 TOOL_VCC140X86_SETUP_ENV   := $(REDIRECT) --prepend "PATH=$(requote shell-in-dq,$(PATH_TOOL_VCC140X86_DLL_BIN));" --$(SP)
     107 ifndef TOOL_VCC140X86_KSUBMIT_DD
     108  TOOL_VCC140X86_KSUBMIT_DD := $(TOOL_VCC140X86_SETUP_ENV)
    112109 endif
    113110endif
    114111
    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)
    120 TOOL_VCC141X64_REDIST_CRT_DLLS        = $(TOOL_VCC141_REDIST_CRT_DLLS.x86)
    121 TOOL_VCC141X64_REDIST_CONCRT_DLLS     = $(TOOL_VCC141_REDIST_CONCRT_DLLS.x86)
    122 TOOL_VCC141X64_REDIST_CPP_DLLS        = $(TOOL_VCC141_REDIST_CPP_DLLS.x86)
    123 TOOL_VCC141X64_REDIST_WINRT_DLLS      = $(TOOL_VCC141_REDIST_WINRT_DLLS.x86)
     112# Redist (more stuff in VCC140.kmk).
     113PATH_TOOL_VCC140X86_REDIST           ?= $(PATH_TOOL_VCC140_REDIST)/x86
     114PATH_TOOL_VCC140X86_REDIST_CRT        = $(PATH_TOOL_VCC140X86_REDIST)/$(TOOL_VCC140_REDIST_CRT_SUBDIR)
     115PATH_TOOL_VCC140X86_REDIST_DEBUG     ?= $(PATH_TOOL_VCC140_REDIST_DEBUG)/x86
     116PATH_TOOL_VCC140X86_REDIST_DEBUG_CRT  = $(PATH_TOOL_VCC140X86_REDIST_DEBUG)/$(TOOL_VCC140_REDIST_CRT_SUBDIR)
     117TOOL_VCC140X64_REDIST_CRT_DLLS        = $(TOOL_VCC140_REDIST_CRT_DLLS.x86)
     118TOOL_VCC140X64_REDIST_CONCRT_DLLS     = $(TOOL_VCC140_REDIST_CONCRT_DLLS.x86)
     119TOOL_VCC140X64_REDIST_CPP_DLLS        = $(TOOL_VCC140_REDIST_CPP_DLLS.x86)
     120TOOL_VCC140X64_REDIST_WINRT_DLLS      = $(TOOL_VCC140_REDIST_WINRT_DLLS.x86)
    124121
    125122
     
    127124# Properties used by kBuild
    128125#
    129 TOOL_VCC141X86_COBJSUFF         ?= .obj
    130 TOOL_VCC141X86_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
    131 TOOL_VCC141X86_CFLAGS.debug     ?=
    132 TOOL_VCC141X86_CFLAGS.dbgopt    ?= -O2
    133 TOOL_VCC141X86_CFLAGS.release   ?= -O2
    134 TOOL_VCC141X86_CFLAGS.profile   ?= -O2
    135 TOOL_VCC141X86_CINCS            ?= $(PATH_TOOL_VCC141X86_INC)
    136 TOOL_VCC141X86_CDEFS            ?=
    137 
    138 TOOL_VCC141X86_CXXOBJSUFF       ?= .obj
    139 TOOL_VCC141X86_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
    140 TOOL_VCC141X86_CXXFLAGS.debug   ?=
    141 TOOL_VCC141X86_CXXFLAGS.dbgopt  ?= -O2
    142 TOOL_VCC141X86_CXXFLAGS.release ?= -O2
    143 TOOL_VCC141X86_CXXFLAGS.profile ?= -O2
    144 TOOL_VCC141X86_CXXINCS          ?= $(PATH_TOOL_VCC141X86_INC) $(PATH_TOOL_VCC141X86_ATLMFC_INC)
    145 TOOL_VCC141X86_CXXDEFS          ?=
    146 
    147 TOOL_VCC141X86_ASOBJSUFF        ?= .obj
    148 
    149 TOOL_VCC141X86_RCOBJSUFF        ?= .res
    150 TOOL_VCC141X86_RCINCS           ?= $(PATH_TOOL_VCC141X86_INC) $(PATH_TOOL_VCC141X86_ATLMFC_INC)
    151 
    152 TOOL_VCC141X86_ARFLAGS          ?= -nologo -machine:x86
    153 TOOL_VCC141X86_ARLIBSUFF        ?= .lib
    154 
    155 TOOL_VCC141X86_LDFLAGS          ?= -nologo -machine:x86
    156 TOOL_VCC141X86_LDFLAGS.debug    ?= -debug
    157 TOOL_VCC141X86_LDFLAGS.dbgopt   ?= -debug
    158 TOOL_VCC141X86_LDFLAGS.profile  ?= -debug
    159 TOOL_VCC141X86_LDFLAGS.release  ?=
     126TOOL_VCC140X86_COBJSUFF         ?= .obj
     127TOOL_VCC140X86_CFLAGS           ?= -TC -nologo -Zi -ZH:SHA_256
     128TOOL_VCC140X86_CFLAGS.debug     ?=
     129TOOL_VCC140X86_CFLAGS.dbgopt    ?= -O2
     130TOOL_VCC140X86_CFLAGS.release   ?= -O2
     131TOOL_VCC140X86_CFLAGS.profile   ?= -O2
     132TOOL_VCC140X86_CINCS            ?= $(PATH_TOOL_VCC140X86_INC)
     133TOOL_VCC140X86_CDEFS            ?=
     134
     135TOOL_VCC140X86_CXXOBJSUFF       ?= .obj
     136TOOL_VCC140X86_CXXFLAGS         ?= -TP -nologo -Zi -ZH:SHA_256
     137TOOL_VCC140X86_CXXFLAGS.debug   ?=
     138TOOL_VCC140X86_CXXFLAGS.dbgopt  ?= -O2
     139TOOL_VCC140X86_CXXFLAGS.release ?= -O2
     140TOOL_VCC140X86_CXXFLAGS.profile ?= -O2
     141TOOL_VCC140X86_CXXINCS          ?= $(PATH_TOOL_VCC140X86_INC) $(PATH_TOOL_VCC140X86_ATLMFC_INC)
     142TOOL_VCC140X86_CXXDEFS          ?=
     143
     144TOOL_VCC140X86_ASOBJSUFF        ?= .obj
     145
     146TOOL_VCC140X86_RCOBJSUFF        ?= .res
     147TOOL_VCC140X86_RCINCS           ?= $(PATH_TOOL_VCC140X86_INC) $(PATH_TOOL_VCC140X86_ATLMFC_INC)
     148
     149TOOL_VCC140X86_ARFLAGS          ?= -nologo -machine:x86
     150TOOL_VCC140X86_ARLIBSUFF        ?= .lib
     151
     152TOOL_VCC140X86_LDFLAGS          ?= -nologo -machine:x86
     153TOOL_VCC140X86_LDFLAGS.debug    ?= -debug
     154TOOL_VCC140X86_LDFLAGS.dbgopt   ?= -debug
     155TOOL_VCC140X86_LDFLAGS.profile  ?= -debug
     156TOOL_VCC140X86_LDFLAGS.release  ?=
    160157
    161158
     
    174171# @param    $(outbase)  Output basename (full). Use this for list files and such.
    175172# @param    $(objsuff)  Object suffix.
    176 TOOL_VCC141X86_COMPILE_C_DEPEND =
    177 TOOL_VCC141X86_COMPILE_C_DEPORD =
    178 TOOL_VCC141X86_COMPILE_C_OUTPUT =
    179 TOOL_VCC141X86_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb)
    180 ifdef TOOL_VCC141X86_KSUBMIT
    181  TOOL_VCC141X86_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
    182  define TOOL_VCC141X86_COMPILE_C_CMDS
    183         $(QUIET)$(TOOL_VCC141X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    184                 -- $(TOOL_VCC141X86_CC) -c\
     173TOOL_VCC140X86_COMPILE_C_DEPEND =
     174TOOL_VCC140X86_COMPILE_C_DEPORD =
     175TOOL_VCC140X86_COMPILE_C_OUTPUT =
     176TOOL_VCC140X86_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC140_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC140_PDB, $(outbase)-obj,idb)
     177ifdef TOOL_VCC140X86_KSUBMIT
     178 TOOL_VCC140X86_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
     179 define TOOL_VCC140X86_COMPILE_C_CMDS
     180        $(QUIET)$(TOOL_VCC140X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     181                -- $(TOOL_VCC140X86_CC) -c\
    185182                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    186183                -Fd$(outbase)-obj.pdb \
     
    189186 endef
    190187else
    191  define TOOL_VCC141X86_COMPILE_C_CMDS
    192         $(QUIET)$(TOOL_VCC141X86_SETUP_ENV)$(TOOL_VCC141X86_CC) -c\
     188 define TOOL_VCC140X86_COMPILE_C_CMDS
     189        $(QUIET)$(TOOL_VCC140X86_SETUP_ENV)$(TOOL_VCC140X86_CC) -c\
    193190                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    194191                -Fd$(outbase)-obj.pdb \
     
    197194        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    198195 endef
    199 endif # !TOOL_VCC141X86_KSUBMIT
     196endif # !TOOL_VCC140X86_KSUBMIT
    200197
    201198
     
    213210# @param    $(outbase)  Output basename (full). Use this for list files and such.
    214211# @param    $(objsuff)  Object suffix.
    215 TOOL_VCC141X86_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    216 TOOL_VCC141X86_COMPILE_CXX_DEPORD =
    217 TOOL_VCC141X86_COMPILE_CXX_OUTPUT =
    218 TOOL_VCC141X86_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
    219         ,,$(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb))
    220 ifdef TOOL_VCC141X86_KSUBMIT
    221  TOOL_VCC141X86_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
    222  define TOOL_VCC141X86_COMPILE_CXX_CMDS
    223         $(QUIET)$(TOOL_VCC141X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    224                 -- $(TOOL_VCC141X86_CXX) -c\
     212TOOL_VCC140X86_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
     213TOOL_VCC140X86_COMPILE_CXX_DEPORD =
     214TOOL_VCC140X86_COMPILE_CXX_OUTPUT =
     215TOOL_VCC140X86_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     216        ,,$(call TOOL_VCC140_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC140_PDB, $(outbase)-obj,idb))
     217ifdef TOOL_VCC140X86_KSUBMIT
     218 TOOL_VCC140X86_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
     219 define TOOL_VCC140X86_COMPILE_CXX_CMDS
     220        $(QUIET)$(TOOL_VCC140X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     221                -- $(TOOL_VCC140X86_CXX) -c\
    225222                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    226223                $(if-expr defined($(target)_PCH_HDR)\
     
    231228 endef
    232229else
    233  define TOOL_VCC141X86_COMPILE_CXX_CMDS
    234         $(QUIET)$(TOOL_VCC141X86_SETUP_ENV)$(TOOL_VCC141X86_CXX) -c\
     230 define TOOL_VCC140X86_COMPILE_CXX_CMDS
     231        $(QUIET)$(TOOL_VCC140X86_SETUP_ENV)$(TOOL_VCC140X86_CXX) -c\
    235232                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    236233                $(if-expr defined($(target)_PCH_HDR)\
     
    241238        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    242239 endef
    243 endif # !TOOL_VCC141X86_KSUBMIT
     240endif # !TOOL_VCC140X86_KSUBMIT
    244241
    245242
     
    250247# related _1_VCC_PCH_FILE and add -Yc.
    251248#
    252 TOOL_VCC141X86-PCH                         := Helper for creating precompiled header using CXX handling.
    253 TOOL_VCC141X86-PCH_EXTENDS                 := VCC141X86
    254 TOOL_VCC141X86-PCH_CXXOBJSUFF              := .obj
    255 TOOL_VCC141X86-PCH_CXXINCS                  = $(TOOL_VCC141X86_CXXINCS)
    256 TOOL_VCC141X86-PCH_CXXFLAGS                 = $(TOOL_VCC141X86_CXXFLAGS) -FS
    257 TOOL_VCC141X86-PCH_CXXFLAGS.debug           = $(TOOL_VCC141X86_CXXFLAGS.debug)
    258 TOOL_VCC141X86-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC141X86_CXXFLAGS.dbgopt)
    259 TOOL_VCC141X86-PCH_CXXFLAGS.release         = $(TOOL_VCC141X86_CXXFLAGS.release)
    260 TOOL_VCC141X86-PCH_CXXFLAGS.profile         = $(TOOL_VCC141X86_CXXFLAGS.profile)
    261 TOOL_VCC141X86-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
    262 TOOL_VCC141X86-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
    263 TOOL_VCC141X86-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    264 TOOL_VCC141X86-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
    265 ifdef TOOL_VCC141X86_KSUBMIT
    266  define TOOL_VCC141X86-PCH_COMPILE_CXX_CMDS
     249TOOL_VCC140X86-PCH                         := Helper for creating precompiled header using CXX handling.
     250TOOL_VCC140X86-PCH_EXTENDS                 := VCC140X86
     251TOOL_VCC140X86-PCH_CXXOBJSUFF              := .obj
     252TOOL_VCC140X86-PCH_CXXINCS                  = $(TOOL_VCC140X86_CXXINCS)
     253TOOL_VCC140X86-PCH_CXXFLAGS                 = $(TOOL_VCC140X86_CXXFLAGS) -FS
     254TOOL_VCC140X86-PCH_CXXFLAGS.debug           = $(TOOL_VCC140X86_CXXFLAGS.debug)
     255TOOL_VCC140X86-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC140X86_CXXFLAGS.dbgopt)
     256TOOL_VCC140X86-PCH_CXXFLAGS.release         = $(TOOL_VCC140X86_CXXFLAGS.release)
     257TOOL_VCC140X86-PCH_CXXFLAGS.profile         = $(TOOL_VCC140X86_CXXFLAGS.profile)
     258TOOL_VCC140X86-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     259TOOL_VCC140X86-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     260TOOL_VCC140X86-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     261TOOL_VCC140X86-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     262ifdef TOOL_VCC140X86_KSUBMIT
     263 define TOOL_VCC140X86-PCH_COMPILE_CXX_CMDS
    267264        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    268         $(QUIET)$(TOOL_VCC141X86_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
    269                 -- $(TOOL_VCC141X86_CXX) -c -Yc\
    270                 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
     265        $(QUIET)$(TOOL_VCC140X86_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     266                -- $(TOOL_VCC140X86_CXX) -c -Yc\
     267                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
     268                $(if-expr defined($(target)_PCH_HDR),-FI$($(target)_PCH_HDR),)\
    271269               -Fp$($(target)_1_VCC_PCH_FILE) \
    272270                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     
    276274 endef
    277275else
    278  define TOOL_VCC141X86-PCH_COMPILE_CXX_CMDS
     276 define TOOL_VCC140X86-PCH_COMPILE_CXX_CMDS
    279277        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    280         $(QUIET)$(TOOL_VCC141X86_SETUP_ENV)$(TOOL_VCC141X86_CXX) -c -Yc\
    281                 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
     278        $(QUIET)$(TOOL_VCC140X86_SETUP_ENV)$(TOOL_VCC140X86_CXX) -c -Yc\
     279                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
     280                $(if-expr defined($(target)_PCH_HDR),-FI$($(target)_PCH_HDR),)\
    282281               -Fp$($(target)_1_VCC_PCH_FILE) \
    283282                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     
    288287
    289288 endef
    290 endif # !TOOL_VCC141X86_KSUBMIT
     289endif # !TOOL_VCC140X86_KSUBMIT
    291290
    292291
     
    306305# @param    $(outbase)  Output basename (full). Use this for list files and such.
    307306# @param    $(objsuff)  Object suffix.
    308 TOOL_VCC141X86_COMPILE_RC_DEPEND =
    309 TOOL_VCC141X86_COMPILE_RC_DEPORD =
    310 TOOL_VCC141X86_COMPILE_RC_OUTPUT =
    311 define TOOL_VCC141X86_COMPILE_RC_CMDS
    312         $(QUIET)$(TOOL_VCC141X86_RC) \
     307TOOL_VCC140X86_COMPILE_RC_DEPEND =
     308TOOL_VCC140X86_COMPILE_RC_DEPORD =
     309TOOL_VCC140X86_COMPILE_RC_OUTPUT =
     310define TOOL_VCC140X86_COMPILE_RC_CMDS
     311        $(QUIET)$(TOOL_VCC140X86_RC) \
    313312                $(flags) $(qaddprefix sh,/i, $(subst /,\\,$(incs))) $(qaddprefix sh,/d, $(defs))\
    314313                /fo$(obj)\
     
    327326# @param    $(outbase)  Output basename (full). Use this for list files and such.
    328327#
    329 TOOL_VCC141X86_LINK_LIBRARY_DEPEND = $(othersrc)
    330 TOOL_VCC141X86_LINK_LIBRARY_DEPORD =
    331 TOOL_VCC141X86_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    332 TOOL_VCC141X86_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
    333 define TOOL_VCC141X86_LINK_LIBRARY_CMDS
     328TOOL_VCC140X86_LINK_LIBRARY_DEPEND = $(othersrc)
     329TOOL_VCC140X86_LINK_LIBRARY_DEPORD =
     330TOOL_VCC140X86_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     331TOOL_VCC140X86_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
     332define TOOL_VCC140X86_LINK_LIBRARY_CMDS
    334333        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    335334                $(qforeachfile u,arg, $(objs) $(filter-out %.def,$(othersrc)),$(quote-sh "$(subst /,\,$(arg))")) \
    336335                $(qforeachfile u,arg, $(filter %.def,$(othersrc)),$(quote-sh "/DEF:$(subst /,\,$(arg))"))
    337         $(QUIET)$(TOOL_VCC141X86_KSUBMIT_DD) $(TOOL_VCC141X86_AR) $(flags) /OUT:$(out) @$(outbase).rsp
     336        $(QUIET)$(TOOL_VCC140X86_KSUBMIT_DD) $(TOOL_VCC140X86_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    338337endef
    339338
     
    353352# @param    $(outbase)      Output basename (full). Use this for list files and such.
    354353#
    355 TOOL_VCC141X86_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    356 TOOL_VCC141X86_LINK_PROGRAM_DEPORD =
    357 TOOL_VCC141X86_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    358 TOOL_VCC141X86_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    359 TOOL_VCC141X86_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
    360 TOOL_VCC141X86_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    361 define TOOL_VCC141X86_LINK_PROGRAM_CMDS
     354TOOL_VCC140X86_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     355TOOL_VCC140X86_LINK_PROGRAM_DEPORD =
     356TOOL_VCC140X86_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     357TOOL_VCC140X86_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     358TOOL_VCC140X86_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
     359TOOL_VCC140X86_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     360define TOOL_VCC140X86_LINK_PROGRAM_CMDS
    362361        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    363362                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    364         $(QUIET)$(TOOL_VCC141X86_KSUBMIT_DD) $(TOOL_VCC141X86_LD) $(flags) \
     363        $(QUIET)$(TOOL_VCC140X86_KSUBMIT_DD) $(TOOL_VCC140X86_LD) $(flags) \
    365364                /OUT:$(out) \
    366365                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    370369                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    371370                @$(outbase).rsp
    372 ifndef TOOL_VCC141X86_NO_AUTO_MANIFEST
     371ifndef TOOL_VCC140X86_NO_AUTO_MANIFEST
    373372        $(QUIET)$(TEST) -f $(out).manifest -- \
    374                 $(TOOL_VCC141X86_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
     373                $(TOOL_VCC140X86_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
    375374endif
    376375endef
     
    391390#
    392391# @param    $(outbase)  Output basename (full). Use this for list files and such.
    393 TOOL_VCC141X86_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    394 TOOL_VCC141X86_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
    395 TOOL_VCC141X86_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
    396 TOOL_VCC141X86_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
    397 TOOL_VCC141X86_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
    398 TOOL_VCC141X86_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
    399 TOOL_VCC141X86_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    400 define TOOL_VCC141X86_LINK_DLL_CMDS
     392TOOL_VCC140X86_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     393TOOL_VCC140X86_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
     394TOOL_VCC140X86_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
     395TOOL_VCC140X86_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
     396TOOL_VCC140X86_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
     397TOOL_VCC140X86_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
     398TOOL_VCC140X86_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     399define TOOL_VCC140X86_LINK_DLL_CMDS
    401400        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    402401                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    403         $(QUIET)$(TOOL_VCC141X86_KSUBMIT_DD) $(TOOL_VCC141X86_LD) $(flags) \
     402        $(QUIET)$(TOOL_VCC140X86_KSUBMIT_DD) $(TOOL_VCC140X86_LD) $(flags) \
    404403                /OUT:$(out) \
    405404                /IMPLIB:$(outbase).lib \
     
    411410                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    412411                @$(outbase).rsp
    413 ifndef TOOL_VCC141X86_NO_AUTO_MANIFEST
     412ifndef TOOL_VCC140X86_NO_AUTO_MANIFEST
    414413        $(QUIET)$(TEST) -f $(out).manifest -- \
    415                 $(TOOL_VCC141X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     414                $(TOOL_VCC140X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    416415endif
    417416        $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib
     
    435434#
    436435# @param    $(outbase)  Output basename (full). Use this for list files and such.
    437 TOOL_VCC141X86_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    438 TOOL_VCC141X86_LINK_SYSMOD_DEPORD =
    439 TOOL_VCC141X86_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    440 TOOL_VCC141X86_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    441 TOOL_VCC141X86_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
    442 TOOL_VCC141X86_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    443 define TOOL_VCC141X86_LINK_SYSMOD_CMDS
     436TOOL_VCC140X86_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     437TOOL_VCC140X86_LINK_SYSMOD_DEPORD =
     438TOOL_VCC140X86_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     439TOOL_VCC140X86_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     440TOOL_VCC140X86_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
     441TOOL_VCC140X86_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     442define TOOL_VCC140X86_LINK_SYSMOD_CMDS
    444443        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    445444                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
    446         $(QUIET)$(TOOL_VCC141X86_KSUBMIT_DD) $(TOOL_VCC141X86_LD) $(flags) \
     445        $(QUIET)$(TOOL_VCC140X86_KSUBMIT_DD) $(TOOL_VCC140X86_LD) $(flags) \
    447446                /OUT:$(out) \
    448447                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    452451                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    453452                @$(outbase).rsp
    454 ifndef TOOL_VCC141X86_NO_AUTO_MANIFEST
     453ifndef TOOL_VCC140X86_NO_AUTO_MANIFEST
    455454        $(QUIET)$(TEST) -f $(out).manifest -- \
    456                 $(TOOL_VCC141X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     455                $(TOOL_VCC140X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    457456endif
    458457endef
Note: See TracChangeset for help on using the changeset viewer.