VirtualBox

Changeset 3033 in kBuild


Ignore:
Timestamp:
May 8, 2017 5:03:48 PM (8 years ago)
Author:
bird
Message:

tools: Created VCC120 from VCC100, only difference is the -FS flag for precompiled header related operations.

Location:
trunk/kBuild/tools
Files:
3 copied

Legend:

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

    r3024 r3033  
    11# $Id$
    22## @file
    3 # kBuild Tool Config - Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting $(KBUILD_TARGET).
    4 #
    5 
    6 #
    7 # Copyright (c) 2004-2014 knut st. osmundsen <[email protected]>
     3# kBuild Tool Config - Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting $(KBUILD_TARGET).
     4#
     5
     6#
     7# Copyright (c) 2004-2017 knut st. osmundsen <[email protected]>
    88#
    99# This file is part of kBuild.
     
    3232#
    3333
    34 TOOL_VCC100 := Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting $(KBUILD_TARGET).
     34TOOL_VCC120 := Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting $(KBUILD_TARGET).
    3535
    3636# Tool Specific Properties
    37 ifndef PATH_TOOL_VCC100
    38  PATH_TOOL_VCC100 := $(wildcard $(KBUILD_DEVTOOLS_TRG)/vcc/v10*)
    39  ifeq ($(PATH_TOOL_VCC100),)
    40   PATH_TOOL_VCC100 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v10*)
     37ifndef PATH_TOOL_VCC120
     38 PATH_TOOL_VCC120 := $(wildcard $(KBUILD_DEVTOOLS_TRG)/vcc/v12*)
     39 ifeq ($(PATH_TOOL_VCC120),)
     40  PATH_TOOL_VCC120 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v12*)
    4141 endif
    42  ifeq ($(PATH_TOOL_VCC100),)
    43   PATH_TOOL_VCC100 := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/vcc/v10*)
     42 ifeq ($(PATH_TOOL_VCC120),)
     43  PATH_TOOL_VCC120 := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/vcc/v12*)
    4444 endif
    45  ifeq ($(PATH_TOOL_VCC100),)
    46   PATH_TOOL_VCC100 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/vcc/v10*)
     45 ifeq ($(PATH_TOOL_VCC120),)
     46  PATH_TOOL_VCC120 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/vcc/v12*)
    4747 endif
    48  ifeq ($(PATH_TOOL_VCC100),)
    49   PATH_TOOL_VCC100 := $(lastword $(sort $(PATH_TOOL_VCC100)))
     48 ifeq ($(PATH_TOOL_VCC120),)
     49  PATH_TOOL_VCC120 := $(lastword $(sort $(PATH_TOOL_VCC120)))
    5050 endif
    5151 # if not found, we'll enter 'pathless' mode.
    5252else
    5353 # Resolve any fancy stuff once and for all.
    54  PATH_TOOL_VCC100 := $(PATH_TOOL_VCC100)
     54 PATH_TOOL_VCC120 := $(PATH_TOOL_VCC120)
    5555endif
    56 ifneq ($(PATH_TOOL_VCC100),)
     56ifneq ($(PATH_TOOL_VCC120),)
    5757 ifeq ($(KBUILD_HOST).$(KBUILD_HOST_ARCH),win.amd64)
    58  PATH_TOOL_VCC100_BIN.amd64 ?= $(PATH_TOOL_VCC100)/bin/amd64
     58 PATH_TOOL_VCC120_BIN.amd64 ?= $(PATH_TOOL_VCC120)/bin/amd64
    5959 else
    60  PATH_TOOL_VCC100_BIN.amd64 ?= $(PATH_TOOL_VCC100)/bin/x86_amd64
     60 PATH_TOOL_VCC120_BIN.amd64 ?= $(PATH_TOOL_VCC120)/bin/x86_amd64
    6161 endif
    62  PATH_TOOL_VCC100_BIN.x86   ?= $(PATH_TOOL_VCC100)/bin
    63  PATH_TOOL_VCC100_BIN       ?= $(PATH_TOOL_VCC100_BIN.$(KBUILD_TARGET_ARCH))
    64  PATH_TOOL_VCC100_LIB.amd64 ?= $(PATH_TOOL_VCC100)/lib/amd64
    65  PATH_TOOL_VCC100_LIB.x86   ?= $(PATH_TOOL_VCC100)/lib
    66  PATH_TOOL_VCC100_LIB       ?= $(PATH_TOOL_VCC100_LIB.$(KBUILD_TARGET_ARCH))
    67  PATH_TOOL_VCC100_INC       ?= $(PATH_TOOL_VCC100)/include
    68  PATH_TOOL_VCC100_ATLMFC    ?= $(PATH_TOOL_VCC100X86)/atlmfc
    69  PATH_TOOL_VCC100_ATLMFC_INC       ?= $(PATH_TOOL_VCC100_ATLMFC)/include
    70  PATH_TOOL_VCC100_ATLMFC_LIB.amd64 ?= $(PATH_TOOL_VCC100_ATLMFC)/lib
    71  PATH_TOOL_VCC100_ATLMFC_LIB.x86   ?= $(PATH_TOOL_VCC100_ATLMFC)/lib/amd64
    72  PATH_TOOL_VCC100_ATLMFC_LIB       ?= $(PATH_TOOL_VCC100_ATLMFC_LIB.$(KBUILD_TARGET_ARCH))
    73  TOOL_VCC100_CC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100_BIN)/cl.exe
    74  TOOL_VCC100_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100_BIN)/cl.exe
    75  TOOL_VCC100_AS  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100_BIN)/ml64.exe
    76  TOOL_VCC100_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100_BIN)/lib.exe
    77  TOOL_VCC100_LD  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100_BIN)/link.exe
    78  TOOL_VCC100_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100_BIN)/dumpbin.exe
    79  TOOL_VCC100_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100_BIN)/editbin.exe
     62 PATH_TOOL_VCC120_BIN.x86   ?= $(PATH_TOOL_VCC120)/bin
     63 PATH_TOOL_VCC120_BIN       ?= $(PATH_TOOL_VCC120_BIN.$(KBUILD_TARGET_ARCH))
     64 PATH_TOOL_VCC120_LIB.amd64 ?= $(PATH_TOOL_VCC120)/lib/amd64
     65 PATH_TOOL_VCC120_LIB.x86   ?= $(PATH_TOOL_VCC120)/lib
     66 PATH_TOOL_VCC120_LIB       ?= $(PATH_TOOL_VCC120_LIB.$(KBUILD_TARGET_ARCH))
     67 PATH_TOOL_VCC120_INC       ?= $(PATH_TOOL_VCC120)/include
     68 PATH_TOOL_VCC120_ATLMFC    ?= $(PATH_TOOL_VCC120X86)/atlmfc
     69 PATH_TOOL_VCC120_ATLMFC_INC       ?= $(PATH_TOOL_VCC120_ATLMFC)/include
     70 PATH_TOOL_VCC120_ATLMFC_LIB.amd64 ?= $(PATH_TOOL_VCC120_ATLMFC)/lib
     71 PATH_TOOL_VCC120_ATLMFC_LIB.x86   ?= $(PATH_TOOL_VCC120_ATLMFC)/lib/amd64
     72 PATH_TOOL_VCC120_ATLMFC_LIB       ?= $(PATH_TOOL_VCC120_ATLMFC_LIB.$(KBUILD_TARGET_ARCH))
     73 TOOL_VCC120_CC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/cl.exe
     74 TOOL_VCC120_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/cl.exe
     75 TOOL_VCC120_AS  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/ml64.exe
     76 TOOL_VCC120_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/lib.exe
     77 TOOL_VCC120_LD  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/link.exe
     78 TOOL_VCC120_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/dumpbin.exe
     79 TOOL_VCC120_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/editbin.exe
    8080else
    8181 # Pathless, relies on the environment.
    82  TOOL_VCC100_CC  ?= $(EXEC_X86_WIN32) cl.exe
    83  TOOL_VCC100_CXX ?= $(EXEC_X86_WIN32) cl.exe
    84  TOOL_VCC100_AS  ?= $(EXEC_X86_WIN32) ml64.exe
    85  TOOL_VCC100_AR  ?= $(EXEC_X86_WIN32) lib.exe
    86  TOOL_VCC100_LD  ?= $(EXEC_X86_WIN32) link.exe
    87  TOOL_VCC100_DUMPBIN ?= $(EXEC_X86_WIN32) dumpbin.exe
    88  TOOL_VCC100_EDITBIN ?= $(EXEC_X86_WIN32) editbin.exe
     82 TOOL_VCC120_CC  ?= $(EXEC_X86_WIN32) cl.exe
     83 TOOL_VCC120_CXX ?= $(EXEC_X86_WIN32) cl.exe
     84 TOOL_VCC120_AS  ?= $(EXEC_X86_WIN32) ml64.exe
     85 TOOL_VCC120_AR  ?= $(EXEC_X86_WIN32) lib.exe
     86 TOOL_VCC120_LD  ?= $(EXEC_X86_WIN32) link.exe
     87 TOOL_VCC120_DUMPBIN ?= $(EXEC_X86_WIN32) dumpbin.exe
     88 TOOL_VCC120_EDITBIN ?= $(EXEC_X86_WIN32) editbin.exe
    8989endif
    90 TOOL_VCC100_RC   ?= $(EXEC_X86_WIN32) $(call TOOL_VCC100_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC100_RC_CACHED)
    91 TOOL_VCC100_MT   ?= $(EXEC_X86_WIN32) $(call TOOL_VCC100_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC100_MT_CACHED)
    92 
    93 # The following in duplicated in VCC100.kmk and VCC100X86.kmk.
    94 TOOL_VCC100_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstword  \
     90TOOL_VCC120_RC   ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC120_RC_CACHED)
     91TOOL_VCC120_MT   ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC120_MT_CACHED)
     92
     93# The following in duplicated in VCC120.kmk and VCC120X86.kmk.
     94TOOL_VCC120_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstword  \
    9595       $(if-expr defined(PATH_SDK_WINPSDK71_BIN), $(wildcard $(PATH_SDK_WINPSDK71_BIN)/$2)) \
    9696       $(if-expr defined(PATH_SDK_WINPSDK_BIN)  , $(wildcard $(PATH_SDK_WINPSDK_BIN)/$2)) \
     
    9898        $(rsort $(wildcard $(KBUILD_DEVTOOLS_HST_ALT)/sdk/*/[Bb][Ii][Nn]/$2)) \
    9999        $1))
    100 TOOL_VCC100_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC100_FN_FIND_SDK_TOOL_SUB),)$($3)
     100TOOL_VCC120_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC120_FN_FIND_SDK_TOOL_SUB),)$($3)
    101101
    102102## Disabled fast DEP_IDB based dependencies.
    103 #VCC100_OLD_DEPS = 1
     103#VCC120_OLD_DEPS = 1
    104104
    105105## Constructs the correct .pdb name (the name is lowercased).
    106106# @param    $(1)        Base name, no extention.
    107107# @param    $(2)        The extension.
    108 TOOL_VCC100_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
     108TOOL_VCC120_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
    109109
    110110
    111111# General Properties used by kBuild
    112 TOOL_VCC100_COBJSUFF         ?= .obj
    113 TOOL_VCC100_CFLAGS           ?= -TC -nologo -Zi
    114 TOOL_VCC100_CFLAGS.debug     ?=
    115 TOOL_VCC100_CFLAGS.dbgopt    ?= -O2
    116 TOOL_VCC100_CFLAGS.release   ?= -O2
    117 TOOL_VCC100_CFLAGS.profile   ?= -O2
    118 TOOL_VCC100_CINCS            ?= $(PATH_TOOL_VCC100_INC)
    119 TOOL_VCC100_CDEFS            ?=
    120 
    121 TOOL_VCC100_CXXOBJSUFF       ?= .obj
    122 TOOL_VCC100_CXXFLAGS         ?= -TP -nologo -Zi
    123 TOOL_VCC100_CXXFLAGS.debug   ?=
    124 TOOL_VCC100_CXXFLAGS.dbgopt  ?= -O2
    125 TOOL_VCC100_CXXFLAGS.release ?= -O2
    126 TOOL_VCC100_CXXFLAGS.profile ?= -O2
    127 TOOL_VCC100_CXXINCS          ?= $(PATH_TOOL_VCC100_INC) $(PATH_TOOL_VCC100_ATLMFC_INC)
    128 TOOL_VCC100_CXXDEFS          ?=
    129 
    130 TOOL_VCC100_ASOBJSUFF        ?= .obj
    131 
    132 TOOL_VCC100_RCOBJSUFF        ?= .res
    133 TOOL_VCC100_RCINCS           ?= $(PATH_TOOL_VCC100_INC) $(PATH_TOOL_VCC100_ATLMFC_INC)
    134 
    135 TOOL_VCC100_ARFLAGS.amd64    ?= -machine:amd64
    136 TOOL_VCC100_ARFLAGS.x86      ?= -machine:x86
    137 TOOL_VCC100_ARFLAGS          ?= -nologo
    138 TOOL_VCC100_ARLIBSUFF        ?= .lib
    139 
    140 TOOL_VCC100_LDFLAGS.amd64    ?= -machine:amd64
    141 TOOL_VCC100_LDFLAGS.x86      ?= -machine:x86
    142 TOOL_VCC100_LDFLAGS          ?= -nologo
    143 TOOL_VCC100_LDFLAGS.debug    ?= -debug
    144 TOOL_VCC100_LDFLAGS.dbgopt   ?= -debug
    145 TOOL_VCC100_LDFLAGS.profile  ?= -debug
    146 TOOL_VCC100_LDFLAGS.release  ?=
    147 TOOL_VCC100_LIBPATH.amd64    ?= $(PATH_TOOL_VCC100_LIB.amd64) $(PATH_TOOL_VCC100_ATLMFC_LIB.amd64)
    148 TOOL_VCC100_LIBPATH.x86      ?= $(PATH_TOOL_VCC100_LIB.x86) $(PATH_TOOL_VCC100_ATLMFC_LIB.x86)
     112TOOL_VCC120_COBJSUFF         ?= .obj
     113TOOL_VCC120_CFLAGS           ?= -TC -nologo -Zi
     114TOOL_VCC120_CFLAGS.debug     ?=
     115TOOL_VCC120_CFLAGS.dbgopt    ?= -O2
     116TOOL_VCC120_CFLAGS.release   ?= -O2
     117TOOL_VCC120_CFLAGS.profile   ?= -O2
     118TOOL_VCC120_CINCS            ?= $(PATH_TOOL_VCC120_INC)
     119TOOL_VCC120_CDEFS            ?=
     120
     121TOOL_VCC120_CXXOBJSUFF       ?= .obj
     122TOOL_VCC120_CXXFLAGS         ?= -TP -nologo -Zi
     123TOOL_VCC120_CXXFLAGS.debug   ?=
     124TOOL_VCC120_CXXFLAGS.dbgopt  ?= -O2
     125TOOL_VCC120_CXXFLAGS.release ?= -O2
     126TOOL_VCC120_CXXFLAGS.profile ?= -O2
     127TOOL_VCC120_CXXINCS          ?= $(PATH_TOOL_VCC120_INC) $(PATH_TOOL_VCC120_ATLMFC_INC)
     128TOOL_VCC120_CXXDEFS          ?=
     129
     130TOOL_VCC120_ASOBJSUFF        ?= .obj
     131
     132TOOL_VCC120_RCOBJSUFF        ?= .res
     133TOOL_VCC120_RCINCS           ?= $(PATH_TOOL_VCC120_INC) $(PATH_TOOL_VCC120_ATLMFC_INC)
     134
     135TOOL_VCC120_ARFLAGS.amd64    ?= -machine:amd64
     136TOOL_VCC120_ARFLAGS.x86      ?= -machine:x86
     137TOOL_VCC120_ARFLAGS          ?= -nologo
     138TOOL_VCC120_ARLIBSUFF        ?= .lib
     139
     140TOOL_VCC120_LDFLAGS.amd64    ?= -machine:amd64
     141TOOL_VCC120_LDFLAGS.x86      ?= -machine:x86
     142TOOL_VCC120_LDFLAGS          ?= -nologo
     143TOOL_VCC120_LDFLAGS.debug    ?= -debug
     144TOOL_VCC120_LDFLAGS.dbgopt   ?= -debug
     145TOOL_VCC120_LDFLAGS.profile  ?= -debug
     146TOOL_VCC120_LDFLAGS.release  ?=
     147TOOL_VCC120_LIBPATH.amd64    ?= $(PATH_TOOL_VCC120_LIB.amd64) $(PATH_TOOL_VCC120_ATLMFC_LIB.amd64)
     148TOOL_VCC120_LIBPATH.x86      ?= $(PATH_TOOL_VCC120_LIB.x86) $(PATH_TOOL_VCC120_ATLMFC_LIB.x86)
    149149
    150150
     
    163163# @param    $(outbase)  Output basename (full). Use this for list files and such.
    164164# @param    $(objsuff)  Object suffix.
    165 TOOL_VCC100_COMPILE_C_DEPEND =
    166 TOOL_VCC100_COMPILE_C_DEPORD =
    167 TOOL_VCC100_COMPILE_C_OUTPUT =
    168 TOOL_VCC100_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC100_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100_PDB, $(outbase)-obj,idb)
    169 define TOOL_VCC100_COMPILE_C_CMDS
    170         $(QUIET)$(TOOL_VCC100_CC) -c\
     165TOOL_VCC120_COMPILE_C_DEPEND =
     166TOOL_VCC120_COMPILE_C_DEPORD =
     167TOOL_VCC120_COMPILE_C_OUTPUT =
     168TOOL_VCC120_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC120_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120_PDB, $(outbase)-obj,idb)
     169define TOOL_VCC120_COMPILE_C_CMDS
     170        $(QUIET)$(TOOL_VCC120_CC) -c\
    171171                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    172172                -Fd$(outbase)-obj.pdb \
     
    190190# @param    $(outbase)  Output basename (full). Use this for list files and such.
    191191# @param    $(objsuff)  Object suffix.
    192 TOOL_VCC100_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    193 TOOL_VCC100_COMPILE_CXX_DEPORD =
    194 TOOL_VCC100_COMPILE_CXX_OUTPUT =
    195 TOOL_VCC100_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
    196         ,,$(call TOOL_VCC100_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100_PDB, $(outbase)-obj,idb))
    197 define TOOL_VCC100_COMPILE_CXX_CMDS
    198         $(QUIET)$(TOOL_VCC100_CXX) -c\
     192TOOL_VCC120_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
     193TOOL_VCC120_COMPILE_CXX_DEPORD =
     194TOOL_VCC120_COMPILE_CXX_OUTPUT =
     195TOOL_VCC120_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     196        ,,$(call TOOL_VCC120_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120_PDB, $(outbase)-obj,idb))
     197define TOOL_VCC120_COMPILE_CXX_CMDS
     198        $(QUIET)$(TOOL_VCC120_CXX) -c\
    199199                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    200200                $(if-expr defined($(target)_PCH_HDR)\
    201                 ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE),)\
     201                ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\
    202202                -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_1_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \
    203203                -Fo$(obj)\
     
    213213# related _1_VCC_PCH_FILE and add -Yc.
    214214#
    215 TOOL_VCC100-PCH                         := Helper for creating precompiled header using CXX handling.
    216 TOOL_VCC100-PCH_EXTENDS                 := VCC100
    217 TOOL_VCC100-PCH_CXXOBJSUFF              := .obj
    218 TOOL_VCC100-PCH_CXXINCS                  = $(TOOL_VCC100_CXXINCS)
    219 TOOL_VCC100-PCH_CXXFLAGS.debug           = $(TOOL_VCC100_CXXFLAGS.debug)
    220 TOOL_VCC100-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC100_CXXFLAGS.dbgopt)
    221 TOOL_VCC100-PCH_CXXFLAGS.release         = $(TOOL_VCC100_CXXFLAGS.release)
    222 TOOL_VCC100-PCH_CXXFLAGS.profile         = $(TOOL_VCC100_CXXFLAGS.profile)
    223 TOOL_VCC100-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
    224 TOOL_VCC100-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
    225 TOOL_VCC100-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    226 TOOL_VCC100-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
    227 ifdef TOOL_VCC100_KSUBMIT
    228  define TOOL_VCC100-PCH_COMPILE_CXX_CMDS
    229         $(QUIET)$(TOOL_VCC100_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
    230                 -- $(TOOL_VCC100_CXX) -c -Yc\
     215TOOL_VCC120-PCH                         := Helper for creating precompiled header using CXX handling.
     216TOOL_VCC120-PCH_EXTENDS                 := VCC120
     217TOOL_VCC120-PCH_CXXOBJSUFF              := .obj
     218TOOL_VCC120-PCH_CXXINCS                  = $(TOOL_VCC120_CXXINCS)
     219TOOL_VCC120-PCH_CXXFLAGS                 = $(TOOL_VCC120_CXXFLAGS) -FS
     220TOOL_VCC120-PCH_CXXFLAGS.debug           = $(TOOL_VCC120_CXXFLAGS.debug)
     221TOOL_VCC120-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC120_CXXFLAGS.dbgopt)
     222TOOL_VCC120-PCH_CXXFLAGS.release         = $(TOOL_VCC120_CXXFLAGS.release)
     223TOOL_VCC120-PCH_CXXFLAGS.profile         = $(TOOL_VCC120_CXXFLAGS.profile)
     224TOOL_VCC120-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     225TOOL_VCC120-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     226TOOL_VCC120-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     227TOOL_VCC120-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     228ifdef TOOL_VCC120_KSUBMIT
     229 define TOOL_VCC120-PCH_COMPILE_CXX_CMDS
     230        $(QUIET)$(TOOL_VCC120_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     231                -- $(TOOL_VCC120_CXX) -c -Yc\
    231232                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    232233               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    237238 endef
    238239else
    239  define TOOL_VCC100-PCH_COMPILE_CXX_CMDS
    240         $(QUIET)$(TOOL_VCC100_CXX) -c -Yc\
     240 define TOOL_VCC120-PCH_COMPILE_CXX_CMDS
     241        $(QUIET)$(TOOL_VCC120_CXX) -c -Yc\
    241242                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    242243               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    248249
    249250 endef
    250 endif # !TOOL_VCC100_KSUBMIT
     251endif # !TOOL_VCC120_KSUBMIT
    251252
    252253
     
    266267# @param    $(outbase)  Output basename (full). Use this for list files and such.
    267268# @param    $(objsuff)  Object suffix.
    268 TOOL_VCC100_COMPILE_RC_OUTPUT =
    269 TOOL_VCC100_COMPILE_RC_DEPEND =
    270 TOOL_VCC100_COMPILE_RC_DEPORD =
    271 define TOOL_VCC100_COMPILE_RC_CMDS
    272         $(QUIET)$(TOOL_VCC100_RC) \
     269TOOL_VCC120_COMPILE_RC_OUTPUT =
     270TOOL_VCC120_COMPILE_RC_DEPEND =
     271TOOL_VCC120_COMPILE_RC_DEPORD =
     272define TOOL_VCC120_COMPILE_RC_CMDS
     273        $(QUIET)$(TOOL_VCC120_RC) \
    273274                $(flags) $(addprefix /i, $(subst /,\\,$(incs))) $(addprefix /d, $(defs))\
    274275                /fo$(obj)\
     
    287288# @param    $(outbase)  Output basename (full). Use this for list files and such.
    288289#
    289 TOOL_VCC100_LINK_LIBRARY_DEPEND = $(othersrc)
    290 TOOL_VCC100_LINK_LIBRARY_DEPORD =
    291 TOOL_VCC100_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    292 TOOL_VCC100_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
    293 define TOOL_VCC100_LINK_LIBRARY_CMDS
     290TOOL_VCC120_LINK_LIBRARY_DEPEND = $(othersrc)
     291TOOL_VCC120_LINK_LIBRARY_DEPORD =
     292TOOL_VCC120_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     293TOOL_VCC120_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
     294define TOOL_VCC120_LINK_LIBRARY_CMDS
    294295        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    295296                $(foreach arg,\
     
    298299                        $(addprefix /DEF:,$(filter %.def,$(othersrc))) \
    299300                        ,\"$(arg)\")
    300         $(QUIET)$(TOOL_VCC100_AR) $(flags) /OUT:$(out) @$(outbase).rsp
     301        $(QUIET)$(TOOL_VCC120_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    301302endef
    302303
     
    316317# @param    $(outbase)      Output basename (full). Use this for list files and such.
    317318#
    318 TOOL_VCC100_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    319 TOOL_VCC100_LINK_PROGRAM_DEPORD =
    320 TOOL_VCC100_LINK_PROGRAM_OUTPUT = $(outbase).map $(outbase).rsp
    321 TOOL_VCC100_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    322 TOOL_VCC100_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
    323 TOOL_VCC100_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    324 define TOOL_VCC100_LINK_PROGRAM_CMDS
     319TOOL_VCC120_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     320TOOL_VCC120_LINK_PROGRAM_DEPORD =
     321TOOL_VCC120_LINK_PROGRAM_OUTPUT = $(outbase).map $(outbase).rsp
     322TOOL_VCC120_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     323TOOL_VCC120_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
     324TOOL_VCC120_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     325define TOOL_VCC120_LINK_PROGRAM_CMDS
    325326        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    326327                $(foreach arg,\
     
    328329                    $(subst /,\\,$(libs)) \
    329330                        ,\"$(arg)\")
    330         $(QUIET)$(TOOL_VCC100_LD) $(flags) \
     331        $(QUIET)$(TOOL_VCC120_LD) $(flags) \
    331332                /OUT:$(out) \
    332333                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    336337                $(foreach p,$(libpath), /LIBPATH:$(p)) \
    337338                @$(outbase).rsp
    338 ifndef TOOL_VCC100_NO_AUTO_MANIFEST
     339ifndef TOOL_VCC120_NO_AUTO_MANIFEST
    339340        $(QUIET)$(TEST) -f $(out).manifest -- \
    340                 $(TOOL_VCC100_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
     341                $(TOOL_VCC120_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
    341342endif
    342343endef
     
    357358#
    358359# @param    $(outbase)  Output basename (full). Use this for list files and such.
    359 TOOL_VCC100_LINK_DLL_DEPEND = $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    360 TOOL_VCC100_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
    361 TOOL_VCC100_LINK_DLL_OUTPUT = $(outbase).map $(outbase).lib $(outbase).exp $(outbase).rsp
    362 TOOL_VCC100_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
    363 TOOL_VCC100_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib
    364 TOOL_VCC100_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
    365 TOOL_VCC100_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    366 define TOOL_VCC100_LINK_DLL_CMDS
     360TOOL_VCC120_LINK_DLL_DEPEND = $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     361TOOL_VCC120_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
     362TOOL_VCC120_LINK_DLL_OUTPUT = $(outbase).map $(outbase).lib $(outbase).exp $(outbase).rsp
     363TOOL_VCC120_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
     364TOOL_VCC120_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib
     365TOOL_VCC120_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
     366TOOL_VCC120_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     367define TOOL_VCC120_LINK_DLL_CMDS
    367368        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    368369                $(foreach arg,\
     
    370371                    $(subst /,\\,$(libs)) \
    371372                        ,\"$(arg)\")
    372         $(QUIET)$(TOOL_VCC100_LD) $(flags) \
     373        $(QUIET)$(TOOL_VCC120_LD) $(flags) \
    373374                /OUT:$(out) \
    374375                /IMPLIB:$(outbase).lib \
     
    380381                $(foreach p,$(libpath), /LIBPATH:$(p)) \
    381382                @$(outbase).rsp
    382 ifndef TOOL_VCC100_NO_AUTO_MANIFEST
     383ifndef TOOL_VCC120_NO_AUTO_MANIFEST
    383384        $(QUIET)$(TEST) -f $(out).manifest -- \
    384                 $(TOOL_VCC100_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     385                $(TOOL_VCC120_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    385386endif
    386387        $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib
     
    404405#
    405406# @param    $(outbase)  Output basename (full). Use this for list files and such.
    406 TOOL_VCC100_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    407 TOOL_VCC100_LINK_SYSMOD_DEPORD =
    408 TOOL_VCC100_LINK_SYSMOD_OUTPUT = $(outbase).map $(outbase).rsp
    409 TOOL_VCC100_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    410 TOOL_VCC100_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
    411 TOOL_VCC100_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    412 define TOOL_VCC100_LINK_SYSMOD_CMDS
     407TOOL_VCC120_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     408TOOL_VCC120_LINK_SYSMOD_DEPORD =
     409TOOL_VCC120_LINK_SYSMOD_OUTPUT = $(outbase).map $(outbase).rsp
     410TOOL_VCC120_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     411TOOL_VCC120_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
     412TOOL_VCC120_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     413define TOOL_VCC120_LINK_SYSMOD_CMDS
    413414        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    414415                $(foreach arg,\
     
    416417                    $(subst /,\\,$(libs)) \
    417418                        ,\"$(arg)\")
    418         $(QUIET)$(TOOL_VCC100_LD) $(flags) \
     419        $(QUIET)$(TOOL_VCC120_LD) $(flags) \
    419420                /OUT:$(out) \
    420421                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    424425                $(foreach p,$(libpath), /LIBPATH:$(p)) \
    425426                @$(outbase).rsp
    426 ifndef TOOL_VCC100_NO_AUTO_MANIFEST
     427ifndef TOOL_VCC120_NO_AUTO_MANIFEST
    427428        $(QUIET)$(TEST) -f $(out).manifest -- \
    428                 $(TOOL_VCC100_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     429                $(TOOL_VCC120_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    429430endif
    430431endef
  • trunk/kBuild/tools/VCC120AMD64.kmk

    r3024 r3033  
    11# $Id$
    22## @file
    3 # kBuild Tool Config - Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting AMD64.
    4 #
    5 
    6 #
    7 # Copyright (c) 2004-2016 knut st. osmundsen <[email protected]>
     3# kBuild Tool Config - Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting AMD64.
     4#
     5
     6#
     7# Copyright (c) 2004-2017 knut st. osmundsen <[email protected]>
    88#
    99# This file is part of kBuild.
     
    3232#
    3333
    34 TOOL_VCC100AMD64 := Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting AMD64
     34TOOL_VCC120AMD64 := Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting AMD64
    3535
    3636# Tool Specific Properties
    37 ifndef PATH_TOOL_VCC100AMD64
    38  PATH_TOOL_VCC100AMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v10*)
    39  ifeq ($(PATH_TOOL_VCC100AMD64),)
    40   PATH_TOOL_VCC100AMD64 := $(PATH_TOOL_VCC100)
     37ifndef PATH_TOOL_VCC120AMD64
     38 PATH_TOOL_VCC120AMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v12*)
     39 ifeq ($(PATH_TOOL_VCC120AMD64),)
     40  PATH_TOOL_VCC120AMD64 := $(PATH_TOOL_VCC120)
    4141 endif
    42  ifeq ($(PATH_TOOL_VCC100AMD64),)
    43   PATH_TOOL_VCC100AMD64 := $(PATH_TOOL_VCC100X86)
     42 ifeq ($(PATH_TOOL_VCC120AMD64),)
     43  PATH_TOOL_VCC120AMD64 := $(PATH_TOOL_VCC120X86)
    4444 endif
    45  ifeq ($(PATH_TOOL_VCC100AMD64),)
    46   PATH_TOOL_VCC100AMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v10*)
     45 ifeq ($(PATH_TOOL_VCC120AMD64),)
     46  PATH_TOOL_VCC120AMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v12*)
    4747 endif
    48  ifneq ($(PATH_TOOL_VCC100AMD64),)
    49   PATH_TOOL_VCC100AMD64 := $(lastword $(sort $(PATH_TOOL_VCC100AMD64)))
     48 ifneq ($(PATH_TOOL_VCC120AMD64),)
     49  PATH_TOOL_VCC120AMD64 := $(lastword $(sort $(PATH_TOOL_VCC120AMD64)))
    5050 else
    51   $(warning kBuild: PATH_TOOL_VCC100AMD64 cannot be determined!)
    52   PATH_TOOL_VCC100AMD64 := $(KBUILD_DEVTOOLS)/win.x86/vcc/v10
     51  $(warning kBuild: PATH_TOOL_VCC120AMD64 cannot be determined!)
     52  PATH_TOOL_VCC120AMD64 := $(KBUILD_DEVTOOLS)/win.x86/vcc/v12
    5353 endif
    5454else
    5555 # Resolve any fancy stuff once and for all.
    56  PATH_TOOL_VCC100AMD64 := $(PATH_TOOL_VCC100AMD64)
     56 PATH_TOOL_VCC120AMD64 := $(PATH_TOOL_VCC120AMD64)
    5757endif
    5858ifeq ($(KBUILD_HOST).$(KBUILD_HOST_ARCH),win.amd64)
    59 PATH_TOOL_VCC100AMD64_BIN ?= $(PATH_TOOL_VCC100AMD64)/bin/amd64
     59PATH_TOOL_VCC120AMD64_BIN ?= $(PATH_TOOL_VCC120AMD64)/bin/amd64
    6060else
    61 PATH_TOOL_VCC100AMD64_BIN ?= $(PATH_TOOL_VCC100AMD64)/bin/x86_amd64
    62 endif
    63 PATH_TOOL_VCC100AMD64_LIB ?= $(PATH_TOOL_VCC100AMD64)/lib/amd64
    64 PATH_TOOL_VCC100AMD64_INC ?= $(PATH_TOOL_VCC100AMD64)/include
    65 PATH_TOOL_VCC100AMD64_ATLMFC ?= $(PATH_TOOL_VCC100AMD64)/atlmfc
    66 PATH_TOOL_VCC100AMD64_ATLMFC_INC ?= $(PATH_TOOL_VCC100AMD64_ATLMFC)/include
    67 PATH_TOOL_VCC100AMD64_ATLMFC_LIB ?= $(PATH_TOOL_VCC100AMD64_ATLMFC)/lib/amd64
    68 TOOL_VCC100AMD64_CC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100AMD64_BIN)/cl.exe
    69 TOOL_VCC100AMD64_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100AMD64_BIN)/cl.exe
    70 TOOL_VCC100AMD64_AS  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100AMD64_BIN)/ml64.exe
    71 #TOOL_VCC100AMD64_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100AMD64_BIN)/lib.exe - just an exec wrapper for the below
    72 TOOL_VCC100AMD64_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100AMD64_BIN)/link.exe /LIB
    73 TOOL_VCC100AMD64_LD  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100AMD64_BIN)/link.exe
    74 TOOL_VCC100AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100AMD64_BIN)/dumpbin.exe
    75 TOOL_VCC100AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100AMD64_BIN)/editbin.exe
    76 TOOL_VCC100AMD64_RC  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC100_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC100_RC_CACHED)
    77 TOOL_VCC100AMD64_MT  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC100_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC100_MT_CACHED)
    78 ifdef TOOL_VCC100AMD64_USE_KSUBMIT
     61PATH_TOOL_VCC120AMD64_BIN ?= $(PATH_TOOL_VCC120AMD64)/bin/x86_amd64
     62endif
     63PATH_TOOL_VCC120AMD64_LIB ?= $(PATH_TOOL_VCC120AMD64)/lib/amd64
     64PATH_TOOL_VCC120AMD64_INC ?= $(PATH_TOOL_VCC120AMD64)/include
     65PATH_TOOL_VCC120AMD64_ATLMFC ?= $(PATH_TOOL_VCC120AMD64)/atlmfc
     66PATH_TOOL_VCC120AMD64_ATLMFC_INC ?= $(PATH_TOOL_VCC120AMD64_ATLMFC)/include
     67PATH_TOOL_VCC120AMD64_ATLMFC_LIB ?= $(PATH_TOOL_VCC120AMD64_ATLMFC)/lib/amd64
     68TOOL_VCC120AMD64_CC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/cl.exe
     69TOOL_VCC120AMD64_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/cl.exe
     70TOOL_VCC120AMD64_AS  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/ml64.exe
     71#TOOL_VCC120AMD64_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/lib.exe - just an exec wrapper for the below
     72TOOL_VCC120AMD64_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/link.exe /LIB
     73TOOL_VCC120AMD64_LD  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/link.exe
     74TOOL_VCC120AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/dumpbin.exe
     75TOOL_VCC120AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/editbin.exe
     76TOOL_VCC120AMD64_RC  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC120_RC_CACHED)
     77TOOL_VCC120AMD64_MT  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC120_MT_CACHED)
     78ifdef TOOL_VCC120AMD64_USE_KSUBMIT
    7979 ifeq ($(KBUILD_HOST),win)
    80   ifneq ($(substr $(PATH_TOOL_VCC100AMD64_BIN),-9),x86_amd64)
    81    TOOL_VCC100AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
    82    TOOL_VCC100AMD64_KSUBMIT_DD = $(TOOL_VCC100AMD64_KSUBMIT) --
     80  ifneq ($(substr $(PATH_TOOL_VCC120AMD64_BIN),-9),x86_amd64)
     81   TOOL_VCC120AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
     82   TOOL_VCC120AMD64_KSUBMIT_DD = $(TOOL_VCC120AMD64_KSUBMIT) --
    8383  else
    8484   # "fatal error C1902: Program database manager mismatch; please check your installation" when mixing with the 32-bit compiler.
    85    #TOOL_VCC100AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
    86    #TOOL_VCC100AMD64_KSUBMIT_DD = $(TOOL_VCC100AMD64_KSUBMIT) --
     85   #TOOL_VCC120AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
     86   #TOOL_VCC120AMD64_KSUBMIT_DD = $(TOOL_VCC120AMD64_KSUBMIT) --
    8787  endif
    8888 endif
    8989endif
    9090
    91 # The following in duplicated in VCC100.kmk and VCC100X86.kmk.
    92 TOOL_VCC100_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstword  \
     91# The following in duplicated in VCC120.kmk and VCC120X86.kmk.
     92TOOL_VCC120_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstword  \
    9393       $(if-expr defined(PATH_SDK_WINPSDK71_BIN), $(wildcard $(PATH_SDK_WINPSDK71_BIN)/$2)) \
    9494       $(if-expr defined(PATH_SDK_WINPSDK_BIN)  , $(wildcard $(PATH_SDK_WINPSDK_BIN)/$2)) \
     
    9696        $(rsort $(wildcard $(KBUILD_DEVTOOLS_HST_ALT)/sdk/*/[Bb][Ii][Nn]/$2)) \
    9797        $1))
    98 TOOL_VCC100_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC100_FN_FIND_SDK_TOOL_SUB),)$($3)
     98TOOL_VCC120_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC120_FN_FIND_SDK_TOOL_SUB),)$($3)
    9999
    100100## Disabled fast DEP_IDB based dependencies.
    101 #VCC100AMD64_OLD_DEPS = 1
     101#VCC120AMD64_OLD_DEPS = 1
    102102
    103103## Constructs the correct .pdb name (the name is lowercased).
    104104# @param    $(1)        Base name, no extention.
    105105# @param    $(2)        The extension.
    106 TOOL_VCC100AMD64_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
     106TOOL_VCC120AMD64_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
    107107
    108108
    109109# General Properties used by kBuild
    110 TOOL_VCC100AMD64_COBJSUFF         ?= .obj
    111 TOOL_VCC100AMD64_CFLAGS           ?= -TC -nologo -Zi
    112 TOOL_VCC100AMD64_CFLAGS.debug     ?=
    113 TOOL_VCC100AMD64_CFLAGS.dbgopt    ?= -O2
    114 TOOL_VCC100AMD64_CFLAGS.release   ?= -O2
    115 TOOL_VCC100AMD64_CFLAGS.profile   ?= -O2
    116 TOOL_VCC100AMD64_CINCS            ?= $(PATH_TOOL_VCC100AMD64_INC)
    117 TOOL_VCC100AMD64_CDEFS            ?=
    118 
    119 TOOL_VCC100AMD64_CXXOBJSUFF       ?= .obj
    120 TOOL_VCC100AMD64_CXXFLAGS         ?= -TP -nologo -Zi
    121 TOOL_VCC100AMD64_CXXFLAGS.debug   ?=
    122 TOOL_VCC100AMD64_CXXFLAGS.dbgopt  ?= -O2
    123 TOOL_VCC100AMD64_CXXFLAGS.release ?= -O2
    124 TOOL_VCC100AMD64_CXXFLAGS.profile ?= -O2
    125 TOOL_VCC100AMD64_CXXINCS          ?= $(PATH_TOOL_VCC100AMD64_INC) $(PATH_TOOL_VCC100AMD64_ATLMFC_INC)
    126 TOOL_VCC100AMD64_CXXDEFS          ?=
    127 
    128 TOOL_VCC100AMD64_ASOBJSUFF        ?= .obj
    129 
    130 TOOL_VCC100AMD64_RCOBJSUFF        ?= .res
    131 TOOL_VCC100AMD64_RCINCS           ?= $(PATH_TOOL_VCC100AMD64_INC) $(PATH_TOOL_VCC100AMD64_ATLMFC_INC)
    132 
    133 TOOL_VCC100AMD64_ARFLAGS          ?= -nologo -machine:amd64
    134 TOOL_VCC100AMD64_ARLIBSUFF        ?= .lib
    135 
    136 TOOL_VCC100AMD64_LDFLAGS          ?= -nologo -machine:amd64
    137 TOOL_VCC100AMD64_LDFLAGS.debug    ?= -debug
    138 TOOL_VCC100AMD64_LDFLAGS.dbgopt   ?= -debug
    139 TOOL_VCC100AMD64_LDFLAGS.profile  ?= -debug
    140 TOOL_VCC100AMD64_LDFLAGS.release  ?=
     110TOOL_VCC120AMD64_COBJSUFF         ?= .obj
     111TOOL_VCC120AMD64_CFLAGS           ?= -TC -nologo -Zi
     112TOOL_VCC120AMD64_CFLAGS.debug     ?=
     113TOOL_VCC120AMD64_CFLAGS.dbgopt    ?= -O2
     114TOOL_VCC120AMD64_CFLAGS.release   ?= -O2
     115TOOL_VCC120AMD64_CFLAGS.profile   ?= -O2
     116TOOL_VCC120AMD64_CINCS            ?= $(PATH_TOOL_VCC120AMD64_INC)
     117TOOL_VCC120AMD64_CDEFS            ?=
     118
     119TOOL_VCC120AMD64_CXXOBJSUFF       ?= .obj
     120TOOL_VCC120AMD64_CXXFLAGS         ?= -TP -nologo -Zi
     121TOOL_VCC120AMD64_CXXFLAGS.debug   ?=
     122TOOL_VCC120AMD64_CXXFLAGS.dbgopt  ?= -O2
     123TOOL_VCC120AMD64_CXXFLAGS.release ?= -O2
     124TOOL_VCC120AMD64_CXXFLAGS.profile ?= -O2
     125TOOL_VCC120AMD64_CXXINCS          ?= $(PATH_TOOL_VCC120AMD64_INC) $(PATH_TOOL_VCC120AMD64_ATLMFC_INC)
     126TOOL_VCC120AMD64_CXXDEFS          ?=
     127
     128TOOL_VCC120AMD64_ASOBJSUFF        ?= .obj
     129
     130TOOL_VCC120AMD64_RCOBJSUFF        ?= .res
     131TOOL_VCC120AMD64_RCINCS           ?= $(PATH_TOOL_VCC120AMD64_INC) $(PATH_TOOL_VCC120AMD64_ATLMFC_INC)
     132
     133TOOL_VCC120AMD64_ARFLAGS          ?= -nologo -machine:amd64
     134TOOL_VCC120AMD64_ARLIBSUFF        ?= .lib
     135
     136TOOL_VCC120AMD64_LDFLAGS          ?= -nologo -machine:amd64
     137TOOL_VCC120AMD64_LDFLAGS.debug    ?= -debug
     138TOOL_VCC120AMD64_LDFLAGS.dbgopt   ?= -debug
     139TOOL_VCC120AMD64_LDFLAGS.profile  ?= -debug
     140TOOL_VCC120AMD64_LDFLAGS.release  ?=
    141141
    142142
     
    155155# @param    $(outbase)  Output basename (full). Use this for list files and such.
    156156# @param    $(objsuff)  Object suffix.
    157 TOOL_VCC100AMD64_COMPILE_C_DEPEND =
    158 TOOL_VCC100AMD64_COMPILE_C_DEPORD =
    159 TOOL_VCC100AMD64_COMPILE_C_OUTPUT =
    160 TOOL_VCC100AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,idb)
    161 ifdef TOOL_VCC100AMD64_KSUBMIT
    162  TOOL_VCC100AMD64_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
    163  define TOOL_VCC100AMD64_COMPILE_C_CMDS
    164         $(QUIET)$(TOOL_VCC100AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    165                 -- $(TOOL_VCC100AMD64_CC) -c\
     157TOOL_VCC120AMD64_COMPILE_C_DEPEND =
     158TOOL_VCC120AMD64_COMPILE_C_DEPORD =
     159TOOL_VCC120AMD64_COMPILE_C_OUTPUT =
     160TOOL_VCC120AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC120AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120AMD64_PDB, $(outbase)-obj,idb)
     161ifdef TOOL_VCC120AMD64_KSUBMIT
     162 TOOL_VCC120AMD64_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
     163 define TOOL_VCC120AMD64_COMPILE_C_CMDS
     164        $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     165                -- $(TOOL_VCC120AMD64_CC) -c\
    166166                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    167167                -Fd$(outbase)-obj.pdb \
     
    170170 endef
    171171else
    172  define TOOL_VCC100AMD64_COMPILE_C_CMDS
    173         $(QUIET)$(TOOL_VCC100AMD64_CC) -c\
     172 define TOOL_VCC120AMD64_COMPILE_C_CMDS
     173        $(QUIET)$(TOOL_VCC120AMD64_CC) -c\
    174174                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    175175                -Fd$(outbase)-obj.pdb \
     
    178178        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    179179 endef
    180 endif # !TOOL_VCC100AMD64_KSUBMIT
     180endif # !TOOL_VCC120AMD64_KSUBMIT
    181181
    182182
     
    194194# @param    $(outbase)  Output basename (full). Use this for list files and such.
    195195# @param    $(objsuff)  Object suffix.
    196 TOOL_VCC100AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    197 TOOL_VCC100AMD64_COMPILE_CXX_DEPORD =
    198 TOOL_VCC100AMD64_COMPILE_CXX_OUTPUT =
    199 TOOL_VCC100AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
    200         ,,$(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,idb))
    201 ifdef TOOL_VCC100AMD64_KSUBMIT
    202  TOOL_VCC100AMD64_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
    203  define TOOL_VCC100AMD64_COMPILE_CXX_CMDS
    204         $(QUIET)$(TOOL_VCC100AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    205                 -- $(TOOL_VCC100AMD64_CXX) -c\
     196TOOL_VCC120AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
     197TOOL_VCC120AMD64_COMPILE_CXX_DEPORD =
     198TOOL_VCC120AMD64_COMPILE_CXX_OUTPUT =
     199TOOL_VCC120AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     200        ,,$(call TOOL_VCC120AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120AMD64_PDB, $(outbase)-obj,idb))
     201ifdef TOOL_VCC120AMD64_KSUBMIT
     202 TOOL_VCC120AMD64_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
     203 define TOOL_VCC120AMD64_COMPILE_CXX_CMDS
     204        $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     205                -- $(TOOL_VCC120AMD64_CXX) -c\
    206206                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    207207                $(if-expr defined($(target)_PCH_HDR)\
    208                 ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE),)\
     208                ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\
    209209                -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_1_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \
    210210                -Fo$(obj)\
     
    212212 endef
    213213else
    214  define TOOL_VCC100AMD64_COMPILE_CXX_CMDS
    215         $(QUIET)$(TOOL_VCC100AMD64_CXX) -c\
     214 define TOOL_VCC120AMD64_COMPILE_CXX_CMDS
     215        $(QUIET)$(TOOL_VCC120AMD64_CXX) -c\
    216216                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    217217                $(if-expr defined($(target)_PCH_HDR)\
    218                 ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE),)\
     218                ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\
    219219                -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_1_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \
    220220                -Fo$(obj)\
     
    222222        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    223223 endef
    224 endif # !TOOL_VCC100AMD64_KSUBMIT
     224endif # !TOOL_VCC120AMD64_KSUBMIT
    225225
    226226
     
    231231# related _1_VCC_PCH_FILE and add -Yc.
    232232#
    233 TOOL_VCC100AMD64-PCH                         := Helper for creating precompiled header using CXX handling.
    234 TOOL_VCC100AMD64-PCH_EXTENDS                 := VCC100AMD64
    235 TOOL_VCC100AMD64-PCH_CXXOBJSUFF              := .obj
    236 TOOL_VCC100AMD64-PCH_CXXINCS                  = $(TOOL_VCC100AMD64_CXXINCS)
    237 TOOL_VCC100AMD64-PCH_CXXFLAGS.debug           = $(TOOL_VCC100AMD64_CXXFLAGS.debug)
    238 TOOL_VCC100AMD64-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC100AMD64_CXXFLAGS.dbgopt)
    239 TOOL_VCC100AMD64-PCH_CXXFLAGS.release         = $(TOOL_VCC100AMD64_CXXFLAGS.release)
    240 TOOL_VCC100AMD64-PCH_CXXFLAGS.profile         = $(TOOL_VCC100AMD64_CXXFLAGS.profile)
    241 TOOL_VCC100AMD64-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
    242 TOOL_VCC100AMD64-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
    243 TOOL_VCC100AMD64-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    244 TOOL_VCC100AMD64-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
    245 ifdef TOOL_VCC100AMD64_KSUBMIT
    246  define TOOL_VCC100AMD64-PCH_COMPILE_CXX_CMDS
     233TOOL_VCC120AMD64-PCH                         := Helper for creating precompiled header using CXX handling.
     234TOOL_VCC120AMD64-PCH_EXTENDS                 := VCC120AMD64
     235TOOL_VCC120AMD64-PCH_CXXOBJSUFF              := .obj
     236TOOL_VCC120AMD64-PCH_CXXINCS                  = $(TOOL_VCC120AMD64_CXXINCS)
     237TOOL_VCC120AMD64-PCH_CXXFLAGS                 = $(TOOL_VCC120AMD64_CXXFLAGS) -FS
     238TOOL_VCC120AMD64-PCH_CXXFLAGS.debug           = $(TOOL_VCC120AMD64_CXXFLAGS.debug)
     239TOOL_VCC120AMD64-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC120AMD64_CXXFLAGS.dbgopt)
     240TOOL_VCC120AMD64-PCH_CXXFLAGS.release         = $(TOOL_VCC120AMD64_CXXFLAGS.release)
     241TOOL_VCC120AMD64-PCH_CXXFLAGS.profile         = $(TOOL_VCC120AMD64_CXXFLAGS.profile)
     242TOOL_VCC120AMD64-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     243TOOL_VCC120AMD64-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     244TOOL_VCC120AMD64-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     245TOOL_VCC120AMD64-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     246ifdef TOOL_VCC120AMD64_KSUBMIT
     247 define TOOL_VCC120AMD64-PCH_COMPILE_CXX_CMDS
    247248        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    248         $(QUIET)$(TOOL_VCC100AMD64_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
    249                 -- $(TOOL_VCC100AMD64_CXX) -c -Yc\
     249        $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     250                -- $(TOOL_VCC120AMD64_CXX) -c -Yc\
    250251                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    251252               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    256257 endef
    257258else
    258  define TOOL_VCC100AMD64-PCH_COMPILE_CXX_CMDS
     259 define TOOL_VCC120AMD64-PCH_COMPILE_CXX_CMDS
    259260        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    260         $(QUIET)$(TOOL_VCC100AMD64_CXX) -c -Yc\
     261        $(QUIET)$(TOOL_VCC120AMD64_CXX) -c -Yc\
    261262                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    262263               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    268269
    269270 endef
    270 endif # !TOOL_VCC100AMD64_KSUBMIT
     271endif # !TOOL_VCC120AMD64_KSUBMIT
    271272
    272273
     
    286287# @param    $(outbase)  Output basename (full). Use this for list files and such.
    287288# @param    $(objsuff)  Object suffix.
    288 TOOL_VCC100AMD64_COMPILE_RC_DEPEND =
    289 TOOL_VCC100AMD64_COMPILE_RC_DEPORD =
    290 TOOL_VCC100AMD64_COMPILE_RC_OUTPUT =
    291 define TOOL_VCC100AMD64_COMPILE_RC_CMDS
    292         $(QUIET)$(TOOL_VCC100AMD64_RC) \
     289TOOL_VCC120AMD64_COMPILE_RC_DEPEND =
     290TOOL_VCC120AMD64_COMPILE_RC_DEPORD =
     291TOOL_VCC120AMD64_COMPILE_RC_OUTPUT =
     292define TOOL_VCC120AMD64_COMPILE_RC_CMDS
     293        $(QUIET)$(TOOL_VCC120AMD64_RC) \
    293294                $(flags) $(addprefix /i, $(subst /,\\,$(incs))) $(addprefix /d, $(defs))\
    294295                /fo$(obj)\
     
    307308# @param    $(outbase)  Output basename (full). Use this for list files and such.
    308309#
    309 TOOL_VCC100AMD64_LINK_LIBRARY_DEPEND = $(othersrc)
    310 TOOL_VCC100AMD64_LINK_LIBRARY_DEPORD =
    311 TOOL_VCC100AMD64_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    312 TOOL_VCC100AMD64_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
    313 define TOOL_VCC100AMD64_LINK_LIBRARY_CMDS
     310TOOL_VCC120AMD64_LINK_LIBRARY_DEPEND = $(othersrc)
     311TOOL_VCC120AMD64_LINK_LIBRARY_DEPORD =
     312TOOL_VCC120AMD64_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     313TOOL_VCC120AMD64_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
     314define TOOL_VCC120AMD64_LINK_LIBRARY_CMDS
    314315        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    315316                $(foreach arg,\
     
    318319                        $(addprefix /DEF:,$(filter %.def,$(othersrc))) \
    319320                        ,\"$(arg)\")
    320         $(QUIET)$(TOOL_VCC100AMD64_KSUBMIT_DD) $(TOOL_VCC100AMD64_AR) $(flags) /OUT:$(out) @$(outbase).rsp
     321        $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    321322endef
    322323
     
    336337# @param    $(outbase)      Output basename (full). Use this for list files and such.
    337338#
    338 TOOL_VCC100AMD64_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    339 TOOL_VCC100AMD64_LINK_PROGRAM_DEPORD =
    340 TOOL_VCC100AMD64_LINK_PROGRAM_OUTPUT = $(outbase).map $(outbase).rsp
    341 TOOL_VCC100AMD64_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    342 TOOL_VCC100AMD64_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
    343 TOOL_VCC100AMD64_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    344 define TOOL_VCC100AMD64_LINK_PROGRAM_CMDS
     339TOOL_VCC120AMD64_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     340TOOL_VCC120AMD64_LINK_PROGRAM_DEPORD =
     341TOOL_VCC120AMD64_LINK_PROGRAM_OUTPUT = $(outbase).map $(outbase).rsp
     342TOOL_VCC120AMD64_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     343TOOL_VCC120AMD64_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
     344TOOL_VCC120AMD64_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     345define TOOL_VCC120AMD64_LINK_PROGRAM_CMDS
    345346        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    346347                $(foreach arg,\
     
    348349                    $(subst /,\\,$(libs)) \
    349350                        ,\"$(arg)\")
    350         $(QUIET)$(TOOL_VCC100AMD64_KSUBMIT_DD) $(TOOL_VCC100AMD64_LD) $(flags) \
     351        $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_LD) $(flags) \
    351352                /OUT:$(out) \
    352353                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    356357                $(foreach p,$(libpath), /LIBPATH:$(p)) \
    357358                @$(outbase).rsp
    358 ifndef TOOL_VCC100AMD64_NO_AUTO_MANIFEST
     359ifndef TOOL_VCC120AMD64_NO_AUTO_MANIFEST
    359360        $(QUIET)$(TEST) -f $(out).manifest -- \
    360                 $(TOOL_VCC100AMD64_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
     361                $(TOOL_VCC120AMD64_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
    361362endif
    362363endef
     
    377378#
    378379# @param    $(outbase)  Output basename (full). Use this for list files and such.
    379 TOOL_VCC100AMD64_LINK_DLL_DEPEND = $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    380 TOOL_VCC100AMD64_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
    381 TOOL_VCC100AMD64_LINK_DLL_OUTPUT = $(outbase).map $(outbase).lib $(outbase).exp $(outbase).rsp
    382 TOOL_VCC100AMD64_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
    383 TOOL_VCC100AMD64_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib
    384 TOOL_VCC100AMD64_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
    385 TOOL_VCC100AMD64_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    386 define TOOL_VCC100AMD64_LINK_DLL_CMDS
     380TOOL_VCC120AMD64_LINK_DLL_DEPEND = $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     381TOOL_VCC120AMD64_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
     382TOOL_VCC120AMD64_LINK_DLL_OUTPUT = $(outbase).map $(outbase).lib $(outbase).exp $(outbase).rsp
     383TOOL_VCC120AMD64_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
     384TOOL_VCC120AMD64_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib
     385TOOL_VCC120AMD64_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
     386TOOL_VCC120AMD64_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     387define TOOL_VCC120AMD64_LINK_DLL_CMDS
    387388        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    388389                $(foreach arg,\
     
    390391                    $(subst /,\\,$(libs)) \
    391392                        ,\"$(arg)\")
    392         $(QUIET)$(TOOL_VCC100AMD64_KSUBMIT_DD) $(TOOL_VCC100AMD64_LD) $(flags) \
     393        $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_LD) $(flags) \
    393394                /OUT:$(out) \
    394395                /IMPLIB:$(outbase).lib \
     
    400401                $(foreach p,$(libpath), /LIBPATH:$(p)) \
    401402                @$(outbase).rsp
    402 ifndef TOOL_VCC100AMD64_NO_AUTO_MANIFEST
     403ifndef TOOL_VCC120AMD64_NO_AUTO_MANIFEST
    403404        $(QUIET)$(TEST) -f $(out).manifest -- \
    404                 $(TOOL_VCC100AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     405                $(TOOL_VCC120AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    405406endif
    406407        $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib
     
    424425#
    425426# @param    $(outbase)  Output basename (full). Use this for list files and such.
    426 TOOL_VCC100AMD64_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    427 TOOL_VCC100AMD64_LINK_SYSMOD_DEPORD =
    428 TOOL_VCC100AMD64_LINK_SYSMOD_OUTPUT = $(outbase).map $(outbase).rsp
    429 TOOL_VCC100AMD64_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    430 TOOL_VCC100AMD64_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
    431 TOOL_VCC100AMD64_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    432 define TOOL_VCC100AMD64_LINK_SYSMOD_CMDS
     427TOOL_VCC120AMD64_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     428TOOL_VCC120AMD64_LINK_SYSMOD_DEPORD =
     429TOOL_VCC120AMD64_LINK_SYSMOD_OUTPUT = $(outbase).map $(outbase).rsp
     430TOOL_VCC120AMD64_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     431TOOL_VCC120AMD64_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
     432TOOL_VCC120AMD64_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     433define TOOL_VCC120AMD64_LINK_SYSMOD_CMDS
    433434        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    434435                $(foreach arg,\
     
    436437                    $(subst /,\\,$(libs)) \
    437438                        ,\"$(arg)\")
    438         $(QUIET)$(TOOL_VCC100AMD64_KSUBMIT_DD) $(TOOL_VCC100AMD64_LD) $(flags) \
     439        $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_LD) $(flags) \
    439440                /OUT:$(out) \
    440441                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    444445                $(foreach p,$(libpath), /LIBPATH:$(p)) \
    445446                @$(outbase).rsp
    446 ifndef TOOL_VCC100AMD64_NO_AUTO_MANIFEST
     447ifndef TOOL_VCC120AMD64_NO_AUTO_MANIFEST
    447448        $(QUIET)$(TEST) -f $(out).manifest -- \
    448                 $(TOOL_VCC100AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     449                $(TOOL_VCC120AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    449450endif
    450451endef
  • trunk/kBuild/tools/VCC120X86.kmk

    r3024 r3033  
    11# $Id$
    22## @file
    3 # kBuild Tool Config - Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting x86.
    4 #
    5 
    6 #
    7 # Copyright (c) 2004-2016 knut st. osmundsen <[email protected]>
     3# kBuild Tool Config - Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting x86.
     4#
     5
     6#
     7# Copyright (c) 2004-2017 knut st. osmundsen <[email protected]>
    88#
    99# This file is part of kBuild.
     
    3232#
    3333
    34 TOOL_VCC100X86 := Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting x86.
     34TOOL_VCC120X86 := Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting x86.
    3535
    3636# Tool Specific Properties
    37 ifndef PATH_TOOL_VCC100X86
    38  PATH_TOOL_VCC100X86 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v10*)
    39  ifeq ($(PATH_TOOL_VCC100X86),)
    40   PATH_TOOL_VCC100X86 := $(PATH_TOOL_VCC100)
    41  endif
    42  ifeq ($(PATH_TOOL_VCC100X86),)
    43   PATH_TOOL_VCC100X86 := $(PATH_TOOL_VCC100AMD64)
    44  endif
    45  ifeq ($(PATH_TOOL_VCC100X86),)
    46   PATH_TOOL_VCC100X86 := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/vcc/v10*)
    47  endif
    48  ifeq ($(PATH_TOOL_VCC100X86),)
    49   PATH_TOOL_VCC100X86 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/vcc/v10*)
    50  endif
    51  ifneq ($(PATH_TOOL_VCC100X86),)
    52   PATH_TOOL_VCC100X86 := $(lastword $(sort $(PATH_TOOL_VCC100X86)))
     37ifndef PATH_TOOL_VCC120X86
     38 PATH_TOOL_VCC120X86 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v12*)
     39 ifeq ($(PATH_TOOL_VCC120X86),)
     40  PATH_TOOL_VCC120X86 := $(PATH_TOOL_VCC120)
     41 endif
     42 ifeq ($(PATH_TOOL_VCC120X86),)
     43  PATH_TOOL_VCC120X86 := $(PATH_TOOL_VCC120AMD64)
     44 endif
     45 ifeq ($(PATH_TOOL_VCC120X86),)
     46  PATH_TOOL_VCC120X86 := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/vcc/v12*)
     47 endif
     48 ifeq ($(PATH_TOOL_VCC120X86),)
     49  PATH_TOOL_VCC120X86 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/vcc/v12*)
     50 endif
     51 ifneq ($(PATH_TOOL_VCC120X86),)
     52  PATH_TOOL_VCC120X86 := $(lastword $(sort $(PATH_TOOL_VCC120X86)))
    5353 else
    54   $(warning kBuild: PATH_TOOL_VCC100X86 cannot be determined!)
    55   PATH_TOOL_VCC100X86 := $(KBUILD_DEVTOOLS)/x86.win/vcc/v10
     54  $(warning kBuild: PATH_TOOL_VCC120X86 cannot be determined!)
     55  PATH_TOOL_VCC120X86 := $(KBUILD_DEVTOOLS)/x86.win/vcc/v12
    5656 endif
    5757else
    5858 # Resolve any fancy stuff once and for all.
    59  PATH_TOOL_VCC100X86 := $(PATH_TOOL_VCC100X86)
     59 PATH_TOOL_VCC120X86 := $(PATH_TOOL_VCC120X86)
    6060endif
    61 PATH_TOOL_VCC100X86_BIN    ?= $(PATH_TOOL_VCC100X86)/bin
    62 PATH_TOOL_VCC100X86_LIB    ?= $(PATH_TOOL_VCC100X86)/lib
    63 PATH_TOOL_VCC100X86_INC    ?= $(PATH_TOOL_VCC100X86)/include
    64 PATH_TOOL_VCC100X86_ATLMFC ?= $(PATH_TOOL_VCC100X86)/atlmfc
    65 PATH_TOOL_VCC100X86_ATLMFC_INC ?= $(PATH_TOOL_VCC100X86_ATLMFC)/include
    66 PATH_TOOL_VCC100X86_ATLMFC_LIB ?= $(PATH_TOOL_VCC100X86_ATLMFC)/lib
    67 TOOL_VCC100X86_CC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100X86_BIN)/cl.exe
    68 TOOL_VCC100X86_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100X86_BIN)/cl.exe
    69 TOOL_VCC100X86_AS  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100X86_BIN)/ml.exe
    70 #TOOL_VCC100X86_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100X86_BIN)/lib.exe - just an exec wrapper for the below
    71 TOOL_VCC100X86_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100X86_BIN)/link.exe /LIB
    72 TOOL_VCC100X86_LD  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100X86_BIN)/link.exe
    73 TOOL_VCC100X86_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100X86_BIN)/dumpbin.exe
    74 TOOL_VCC100X86_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC100X86_BIN)/editbin.exe
    75 TOOL_VCC100X86_RC  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC100_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC100_RC_CACHED)
    76 TOOL_VCC100X86_MT  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC100_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC100_MT_CACHED)
    77 ifdef TOOL_VCC100X86_USE_KSUBMIT
     61PATH_TOOL_VCC120X86_BIN    ?= $(PATH_TOOL_VCC120X86)/bin
     62PATH_TOOL_VCC120X86_LIB    ?= $(PATH_TOOL_VCC120X86)/lib
     63PATH_TOOL_VCC120X86_INC    ?= $(PATH_TOOL_VCC120X86)/include
     64PATH_TOOL_VCC120X86_ATLMFC ?= $(PATH_TOOL_VCC120X86)/atlmfc
     65PATH_TOOL_VCC120X86_ATLMFC_INC ?= $(PATH_TOOL_VCC120X86_ATLMFC)/include
     66PATH_TOOL_VCC120X86_ATLMFC_LIB ?= $(PATH_TOOL_VCC120X86_ATLMFC)/lib
     67TOOL_VCC120X86_CC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120X86_BIN)/cl.exe
     68TOOL_VCC120X86_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120X86_BIN)/cl.exe
     69TOOL_VCC120X86_AS  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120X86_BIN)/ml.exe
     70#TOOL_VCC120X86_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120X86_BIN)/lib.exe - just an exec wrapper for the below
     71TOOL_VCC120X86_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120X86_BIN)/link.exe /LIB
     72TOOL_VCC120X86_LD  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120X86_BIN)/link.exe
     73TOOL_VCC120X86_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120X86_BIN)/dumpbin.exe
     74TOOL_VCC120X86_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120X86_BIN)/editbin.exe
     75TOOL_VCC120X86_RC  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC120_RC_CACHED)
     76TOOL_VCC120X86_MT  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC120_MT_CACHED)
     77ifdef TOOL_VCC120X86_USE_KSUBMIT
    7878 ifeq ($(KBUILD_HOST),win)
    79   TOOL_VCC100X86_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
    80   TOOL_VCC100X86_KSUBMIT_DD = $(TOOL_VCC100X86_KSUBMIT) --
     79  TOOL_VCC120X86_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
     80  TOOL_VCC120X86_KSUBMIT_DD = $(TOOL_VCC120X86_KSUBMIT) --
    8181 endif
    8282endif
    8383
    84 # The following in duplicated in VCC100.kmk and VCC100X86.kmk.
    85 TOOL_VCC100_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstword  \
     84# The following in duplicated in VCC120.kmk and VCC120X86.kmk.
     85TOOL_VCC120_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstword  \
    8686       $(if-expr defined(PATH_SDK_WINPSDK71_BIN), $(wildcard $(PATH_SDK_WINPSDK71_BIN)/$2)) \
    8787       $(if-expr defined(PATH_SDK_WINPSDK_BIN)  , $(wildcard $(PATH_SDK_WINPSDK_BIN)/$2)) \
     
    8989        $(rsort $(wildcard $(KBUILD_DEVTOOLS_HST_ALT)/sdk/*/[Bb][Ii][Nn]/$2)) \
    9090        $1))
    91 TOOL_VCC100_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC100_FN_FIND_SDK_TOOL_SUB),)$($3)
     91TOOL_VCC120_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC120_FN_FIND_SDK_TOOL_SUB),)$($3)
    9292
    9393## Disabled fast DEP_IDB based dependencies.
    94 #VCC100X86_OLD_DEPS = 1
     94#VCC120X86_OLD_DEPS = 1
    9595
    9696## Constructs the correct .pdb name (the name is lowercased).
    9797# @param    $(1)        Base name, no extention.
    9898# @param    $(2)        The extension.
    99 TOOL_VCC100X86_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
     99TOOL_VCC120X86_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
    100100
    101101
    102102# General Properties used by kBuild
    103 TOOL_VCC100X86_COBJSUFF         ?= .obj
    104 TOOL_VCC100X86_CFLAGS           ?= -TC -nologo -Zi
    105 TOOL_VCC100X86_CFLAGS.debug     ?=
    106 TOOL_VCC100X86_CFLAGS.dbgopt    ?= -O2
    107 TOOL_VCC100X86_CFLAGS.release   ?= -O2
    108 TOOL_VCC100X86_CFLAGS.profile   ?= -O2
    109 TOOL_VCC100X86_CINCS            ?= $(PATH_TOOL_VCC100X86_INC)
    110 TOOL_VCC100X86_CDEFS            ?=
    111 
    112 TOOL_VCC100X86_CXXOBJSUFF       ?= .obj
    113 TOOL_VCC100X86_CXXFLAGS         ?= -TP -nologo -Zi
    114 TOOL_VCC100X86_CXXFLAGS.debug   ?=
    115 TOOL_VCC100X86_CXXFLAGS.dbgopt  ?= -O2
    116 TOOL_VCC100X86_CXXFLAGS.release ?= -O2
    117 TOOL_VCC100X86_CXXFLAGS.profile ?= -O2
    118 TOOL_VCC100X86_CXXINCS          ?= $(PATH_TOOL_VCC100X86_INC) $(PATH_TOOL_VCC100X86_ATLMFC_INC)
    119 TOOL_VCC100X86_CXXDEFS          ?=
    120 
    121 TOOL_VCC100X86_ASOBJSUFF        ?= .obj
    122 
    123 TOOL_VCC100X86_RCOBJSUFF        ?= .res
    124 TOOL_VCC100X86_RCINCS           ?= $(PATH_TOOL_VCC100X86_INC) $(PATH_TOOL_VCC100X86_ATLMFC_INC)
    125 
    126 TOOL_VCC100X86_ARFLAGS          ?= -nologo
    127 TOOL_VCC100X86_ARLIBSUFF        ?= .lib
    128 
    129 TOOL_VCC100X86_LDFLAGS          ?= -nologo -machine:x86
    130 TOOL_VCC100X86_LDFLAGS.debug    ?= -debug
    131 TOOL_VCC100X86_LDFLAGS.dbgopt   ?= -debug
    132 TOOL_VCC100X86_LDFLAGS.profile  ?= -debug
    133 TOOL_VCC100X86_LDFLAGS.release  ?=
     103TOOL_VCC120X86_COBJSUFF         ?= .obj
     104TOOL_VCC120X86_CFLAGS           ?= -TC -nologo -Zi
     105TOOL_VCC120X86_CFLAGS.debug     ?=
     106TOOL_VCC120X86_CFLAGS.dbgopt    ?= -O2
     107TOOL_VCC120X86_CFLAGS.release   ?= -O2
     108TOOL_VCC120X86_CFLAGS.profile   ?= -O2
     109TOOL_VCC120X86_CINCS            ?= $(PATH_TOOL_VCC120X86_INC)
     110TOOL_VCC120X86_CDEFS            ?=
     111
     112TOOL_VCC120X86_CXXOBJSUFF       ?= .obj
     113TOOL_VCC120X86_CXXFLAGS         ?= -TP -nologo -Zi
     114TOOL_VCC120X86_CXXFLAGS.debug   ?=
     115TOOL_VCC120X86_CXXFLAGS.dbgopt  ?= -O2
     116TOOL_VCC120X86_CXXFLAGS.release ?= -O2
     117TOOL_VCC120X86_CXXFLAGS.profile ?= -O2
     118TOOL_VCC120X86_CXXINCS          ?= $(PATH_TOOL_VCC120X86_INC) $(PATH_TOOL_VCC120X86_ATLMFC_INC)
     119TOOL_VCC120X86_CXXDEFS          ?=
     120
     121TOOL_VCC120X86_ASOBJSUFF        ?= .obj
     122
     123TOOL_VCC120X86_RCOBJSUFF        ?= .res
     124TOOL_VCC120X86_RCINCS           ?= $(PATH_TOOL_VCC120X86_INC) $(PATH_TOOL_VCC120X86_ATLMFC_INC)
     125
     126TOOL_VCC120X86_ARFLAGS          ?= -nologo
     127TOOL_VCC120X86_ARLIBSUFF        ?= .lib
     128
     129TOOL_VCC120X86_LDFLAGS          ?= -nologo -machine:x86
     130TOOL_VCC120X86_LDFLAGS.debug    ?= -debug
     131TOOL_VCC120X86_LDFLAGS.dbgopt   ?= -debug
     132TOOL_VCC120X86_LDFLAGS.profile  ?= -debug
     133TOOL_VCC120X86_LDFLAGS.release  ?=
    134134
    135135
     
    148148# @param    $(outbase)  Output basename (full). Use this for list files and such.
    149149# @param    $(objsuff)  Object suffix.
    150 TOOL_VCC100X86_COMPILE_C_DEPEND =
    151 TOOL_VCC100X86_COMPILE_C_DEPORD =
    152 TOOL_VCC100X86_COMPILE_C_OUTPUT =
    153 TOOL_VCC100X86_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC100X86_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100X86_PDB, $(outbase)-obj,idb)
    154 ifdef TOOL_VCC100X86_KSUBMIT
    155  TOOL_VCC100X86_COMPILE_C_DONT_PURGE_OUTPUT = 1 # speed
    156  define TOOL_VCC100X86_COMPILE_C_CMDS
    157         $(QUIET)$(TOOL_VCC100X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    158                 -- $(TOOL_VCC100X86_CC) -c\
     150TOOL_VCC120X86_COMPILE_C_DEPEND =
     151TOOL_VCC120X86_COMPILE_C_DEPORD =
     152TOOL_VCC120X86_COMPILE_C_OUTPUT =
     153TOOL_VCC120X86_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC120X86_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120X86_PDB, $(outbase)-obj,idb)
     154ifdef TOOL_VCC120X86_KSUBMIT
     155 TOOL_VCC120X86_COMPILE_C_DONT_PURGE_OUTPUT = 1 # speed
     156 define TOOL_VCC120X86_COMPILE_C_CMDS
     157        $(QUIET)$(TOOL_VCC120X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     158                -- $(TOOL_VCC120X86_CC) -c\
    159159                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    160160                -Fd$(outbase)-obj.pdb \
     
    163163 endef
    164164else
    165  define TOOL_VCC100X86_COMPILE_C_CMDS
    166         $(QUIET)$(TOOL_VCC100X86_CC) -c\
     165 define TOOL_VCC120X86_COMPILE_C_CMDS
     166        $(QUIET)$(TOOL_VCC120X86_CC) -c\
    167167                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    168168                -Fd$(outbase)-obj.pdb \
     
    171171        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    172172 endef
    173 endif # !TOOL_VCC100X86_KSUBMIT
     173endif # !TOOL_VCC120X86_KSUBMIT
    174174
    175175
     
    187187# @param    $(outbase)  Output basename (full). Use this for list files and such.
    188188# @param    $(objsuff)  Object suffix.
    189 TOOL_VCC100X86_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    190 TOOL_VCC100X86_COMPILE_CXX_DEPORD =
    191 TOOL_VCC100X86_COMPILE_CXX_OUTPUT =
    192 TOOL_VCC100X86_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
    193         ,,$(call TOOL_VCC100X86_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC100X86_PDB, $(outbase)-obj,idb))
    194 ifdef TOOL_VCC100X86_KSUBMIT
    195  TOOL_VCC100X86_COMPILE_CXX_DONT_PURGE_OUTPUT = 1 # speed
    196  define TOOL_VCC100X86_COMPILE_CXX_CMDS
    197         $(QUIET)$(TOOL_VCC100X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    198                 -- $(TOOL_VCC100X86_CXX) -c\
     189TOOL_VCC120X86_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
     190TOOL_VCC120X86_COMPILE_CXX_DEPORD =
     191TOOL_VCC120X86_COMPILE_CXX_OUTPUT =
     192TOOL_VCC120X86_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     193        ,,$(call TOOL_VCC120X86_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120X86_PDB, $(outbase)-obj,idb))
     194ifdef TOOL_VCC120X86_KSUBMIT
     195 TOOL_VCC120X86_COMPILE_CXX_DONT_PURGE_OUTPUT = 1 # speed
     196 define TOOL_VCC120X86_COMPILE_CXX_CMDS
     197        $(QUIET)$(TOOL_VCC120X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     198                -- $(TOOL_VCC120X86_CXX) -c\
    199199                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    200200                $(if-expr defined($(target)_PCH_HDR)\
    201                 ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE),)\
     201                ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\
    202202                -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_1_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \
    203203                -Fo$(obj)\
     
    205205 endef
    206206else
    207  define TOOL_VCC100X86_COMPILE_CXX_CMDS
    208         $(QUIET)$(TOOL_VCC100X86_CXX) -c\
     207 define TOOL_VCC120X86_COMPILE_CXX_CMDS
     208        $(QUIET)$(TOOL_VCC120X86_CXX) -c\
    209209                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    210210                $(if-expr defined($(target)_PCH_HDR)\
    211                 ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE),)\
     211                ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\
    212212                -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_1_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \
    213213                -Fo$(obj)\
     
    215215        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    216216 endef
    217 endif # !TOOL_VCC100X86_KSUBMIT
     217endif # !TOOL_VCC120X86_KSUBMIT
    218218
    219219
     
    224224# related _1_VCC_PCH_FILE and add -Yc.
    225225#
    226 TOOL_VCC100X86-PCH                         := Helper for creating precompiled header using CXX handling.
    227 TOOL_VCC100X86-PCH_EXTENDS                 := VCC100X86
    228 TOOL_VCC100X86-PCH_CXXOBJSUFF              := .obj
    229 TOOL_VCC100X86-PCH_CXXINCS                  = $(TOOL_VCC100X86_CXXINCS)
    230 TOOL_VCC100X86-PCH_CXXFLAGS.debug           = $(TOOL_VCC100X86_CXXFLAGS.debug)
    231 TOOL_VCC100X86-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC100X86_CXXFLAGS.dbgopt)
    232 TOOL_VCC100X86-PCH_CXXFLAGS.release         = $(TOOL_VCC100X86_CXXFLAGS.release)
    233 TOOL_VCC100X86-PCH_CXXFLAGS.profile         = $(TOOL_VCC100X86_CXXFLAGS.profile)
    234 TOOL_VCC100X86-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
    235 TOOL_VCC100X86-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
    236 TOOL_VCC100X86-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    237 TOOL_VCC100X86-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
    238 ifdef TOOL_VCC100X86_KSUBMIT
    239  define TOOL_VCC100X86-PCH_COMPILE_CXX_CMDS
    240         $(QUIET)$(TOOL_VCC100X86_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
    241                 -- $(TOOL_VCC100X86_CXX) -c -Yc\
     226TOOL_VCC120X86-PCH                         := Helper for creating precompiled header using CXX handling.
     227TOOL_VCC120X86-PCH_EXTENDS                 := VCC120X86
     228TOOL_VCC120X86-PCH_CXXOBJSUFF              := .obj
     229TOOL_VCC120X86-PCH_CXXINCS                  = $(TOOL_VCC120X86_CXXINCS)
     230TOOL_VCC120X86-PCH_CXXFLAGS                 = $(TOOL_VCC120X86_CXXFLAGS) -FS
     231TOOL_VCC120X86-PCH_CXXFLAGS.debug           = $(TOOL_VCC120X86_CXXFLAGS.debug)
     232TOOL_VCC120X86-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC120X86_CXXFLAGS.dbgopt)
     233TOOL_VCC120X86-PCH_CXXFLAGS.release         = $(TOOL_VCC120X86_CXXFLAGS.release)
     234TOOL_VCC120X86-PCH_CXXFLAGS.profile         = $(TOOL_VCC120X86_CXXFLAGS.profile)
     235TOOL_VCC120X86-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     236TOOL_VCC120X86-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     237TOOL_VCC120X86-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     238TOOL_VCC120X86-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     239ifdef TOOL_VCC120X86_KSUBMIT
     240 define TOOL_VCC120X86-PCH_COMPILE_CXX_CMDS
     241        $(QUIET)$(TOOL_VCC120X86_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     242                -- $(TOOL_VCC120X86_CXX) -c -Yc\
    242243                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    243244               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    248249 endef
    249250else
    250  define TOOL_VCC100X86-PCH_COMPILE_CXX_CMDS
    251         $(QUIET)$(TOOL_VCC100X86_CXX) -c -Yc\
     251 define TOOL_VCC120X86-PCH_COMPILE_CXX_CMDS
     252        $(QUIET)$(TOOL_VCC120X86_CXX) -c -Yc\
    252253                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    253254               -Fp$($(target)_1_VCC_PCH_FILE) \
     
    259260
    260261 endef
    261 endif # !TOOL_VCC100X86_KSUBMIT
     262endif # !TOOL_VCC120X86_KSUBMIT
    262263
    263264
     
    277278# @param    $(outbase)  Output basename (full). Use this for list files and such.
    278279# @param    $(objsuff)  Object suffix.
    279 TOOL_VCC100X86_COMPILE_RC_DEPEND =
    280 TOOL_VCC100X86_COMPILE_RC_DEPORD =
    281 TOOL_VCC100X86_COMPILE_RC_OUTPUT =
    282 define TOOL_VCC100X86_COMPILE_RC_CMDS
    283         $(QUIET)$(TOOL_VCC100X86_RC) \
     280TOOL_VCC120X86_COMPILE_RC_DEPEND =
     281TOOL_VCC120X86_COMPILE_RC_DEPORD =
     282TOOL_VCC120X86_COMPILE_RC_OUTPUT =
     283define TOOL_VCC120X86_COMPILE_RC_CMDS
     284        $(QUIET)$(TOOL_VCC120X86_RC) \
    284285                $(flags) $(addprefix /i, $(subst /,\\,$(incs))) $(addprefix /d, $(defs))\
    285286                /fo$(obj)\
     
    298299# @param    $(outbase)  Output basename (full). Use this for list files and such.
    299300#
    300 TOOL_VCC100X86_LINK_LIBRARY_DEPEND = $(othersrc)
    301 TOOL_VCC100X86_LINK_LIBRARY_DEPORD =
    302 TOOL_VCC100X86_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    303 TOOL_VCC100X86_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
    304 define TOOL_VCC100X86_LINK_LIBRARY_CMDS
     301TOOL_VCC120X86_LINK_LIBRARY_DEPEND = $(othersrc)
     302TOOL_VCC120X86_LINK_LIBRARY_DEPORD =
     303TOOL_VCC120X86_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     304TOOL_VCC120X86_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
     305define TOOL_VCC120X86_LINK_LIBRARY_CMDS
    305306        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    306307                $(foreach arg,\
     
    309310                        $(addprefix /DEF:,$(filter %.def,$(othersrc))) \
    310311                        ,\"$(arg)\")
    311         $(QUIET)$(TOOL_VCC100X86_KSUBMIT_DD) $(TOOL_VCC100X86_AR) $(flags) /OUT:$(out) @$(outbase).rsp
     312        $(QUIET)$(TOOL_VCC120X86_KSUBMIT_DD) $(TOOL_VCC120X86_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    312313endef
    313314
     
    327328# @param    $(outbase)      Output basename (full). Use this for list files and such.
    328329#
    329 TOOL_VCC100X86_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    330 TOOL_VCC100X86_LINK_PROGRAM_DEPORD =
    331 TOOL_VCC100X86_LINK_PROGRAM_OUTPUT = $(outbase).map $(outbase).rsp
    332 TOOL_VCC100X86_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    333 TOOL_VCC100X86_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
    334 TOOL_VCC100X86_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    335 define TOOL_VCC100X86_LINK_PROGRAM_CMDS
     330TOOL_VCC120X86_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     331TOOL_VCC120X86_LINK_PROGRAM_DEPORD =
     332TOOL_VCC120X86_LINK_PROGRAM_OUTPUT = $(outbase).map $(outbase).rsp
     333TOOL_VCC120X86_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     334TOOL_VCC120X86_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
     335TOOL_VCC120X86_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     336define TOOL_VCC120X86_LINK_PROGRAM_CMDS
    336337        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    337338                $(foreach arg,\
     
    339340                    $(subst /,\\,$(libs)) \
    340341                        ,\"$(arg)\")
    341         $(QUIET)$(TOOL_VCC100X86_KSUBMIT_DD) $(TOOL_VCC100X86_LD) $(flags) \
     342        $(QUIET)$(TOOL_VCC120X86_KSUBMIT_DD) $(TOOL_VCC120X86_LD) $(flags) \
    342343                /OUT:$(out) \
    343344                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    347348                $(foreach p,$(libpath), /LIBPATH:$(p)) \
    348349                @$(outbase).rsp
    349 ifndef TOOL_VCC100X86_NO_AUTO_MANIFEST
     350ifndef TOOL_VCC120X86_NO_AUTO_MANIFEST
    350351        $(QUIET)$(TEST) -f $(out).manifest -- \
    351                 $(TOOL_VCC100X86_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
     352                $(TOOL_VCC120X86_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
    352353endif
    353354endef
     
    368369#
    369370# @param    $(outbase)  Output basename (full). Use this for list files and such.
    370 TOOL_VCC100X86_LINK_DLL_DEPEND = $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    371 TOOL_VCC100X86_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
    372 TOOL_VCC100X86_LINK_DLL_OUTPUT = $(outbase).map $(outbase).lib $(outbase).exp $(outbase).rsp
    373 TOOL_VCC100X86_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
    374 TOOL_VCC100X86_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib
    375 TOOL_VCC100X86_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
    376 TOOL_VCC100X86_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    377 define TOOL_VCC100X86_LINK_DLL_CMDS
     371TOOL_VCC120X86_LINK_DLL_DEPEND = $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     372TOOL_VCC120X86_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
     373TOOL_VCC120X86_LINK_DLL_OUTPUT = $(outbase).map $(outbase).lib $(outbase).exp $(outbase).rsp
     374TOOL_VCC120X86_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
     375TOOL_VCC120X86_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib
     376TOOL_VCC120X86_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
     377TOOL_VCC120X86_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     378define TOOL_VCC120X86_LINK_DLL_CMDS
    378379        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    379380                $(foreach arg,\
     
    381382                    $(subst /,\\,$(libs)) \
    382383                        ,\"$(arg)\")
    383         $(QUIET)$(TOOL_VCC100X86_KSUBMIT_DD) $(TOOL_VCC100X86_LD) $(flags) \
     384        $(QUIET)$(TOOL_VCC120X86_KSUBMIT_DD) $(TOOL_VCC120X86_LD) $(flags) \
    384385                /OUT:$(out) \
    385386                /IMPLIB:$(outbase).lib \
     
    391392                $(foreach p,$(libpath), /LIBPATH:$(p)) \
    392393                @$(outbase).rsp
    393 ifndef TOOL_VCC100X86_NO_AUTO_MANIFEST
     394ifndef TOOL_VCC120X86_NO_AUTO_MANIFEST
    394395        $(QUIET)$(TEST) -f $(out).manifest -- \
    395                 $(TOOL_VCC100X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     396                $(TOOL_VCC120X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    396397endif
    397398        $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib
     
    415416#
    416417# @param    $(outbase)  Output basename (full). Use this for list files and such.
    417 TOOL_VCC100X86_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    418 TOOL_VCC100X86_LINK_SYSMOD_DEPORD =
    419 TOOL_VCC100X86_LINK_SYSMOD_OUTPUT = $(outbase).map $(outbase).rsp
    420 TOOL_VCC100X86_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    421 TOOL_VCC100X86_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
    422 TOOL_VCC100X86_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    423 define TOOL_VCC100X86_LINK_SYSMOD_CMDS
     418TOOL_VCC120X86_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     419TOOL_VCC120X86_LINK_SYSMOD_DEPORD =
     420TOOL_VCC120X86_LINK_SYSMOD_OUTPUT = $(outbase).map $(outbase).rsp
     421TOOL_VCC120X86_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     422TOOL_VCC120X86_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
     423TOOL_VCC120X86_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     424define TOOL_VCC120X86_LINK_SYSMOD_CMDS
    424425        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    425426                $(foreach arg,\
     
    427428                    $(subst /,\\,$(libs)) \
    428429                        ,\"$(arg)\")
    429         $(QUIET)$(TOOL_VCC100X86_KSUBMIT_DD) $(TOOL_VCC100X86_LD) $(flags) \
     430        $(QUIET)$(TOOL_VCC120X86_KSUBMIT_DD) $(TOOL_VCC120X86_LD) $(flags) \
    430431                /OUT:$(out) \
    431432                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    435436                $(foreach p,$(libpath), /LIBPATH:$(p)) \
    436437                @$(outbase).rsp
    437 ifndef TOOL_VCC100X86_NO_AUTO_MANIFEST
     438ifndef TOOL_VCC120X86_NO_AUTO_MANIFEST
    438439        $(QUIET)$(TEST) -f $(out).manifest -- \
    439                 $(TOOL_VCC100X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     440                $(TOOL_VCC120X86_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    440441endif
    441442endef
Note: See TracChangeset for help on using the changeset viewer.

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