VirtualBox

Changeset 3323 in kBuild


Ignore:
Timestamp:
Apr 16, 2020 11:10:45 PM (5 years ago)
Author:
bird
Message:

tools/VCC141*.kmk: Early commit of Visual C++ 14.1 tools.

Location:
trunk/kBuild
Files:
1 edited
2 copied

Legend:

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

    r3313 r3323  
    11# $Id$
    22## @file
    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 <bird-kBuild-spam-xviiv@anduin.net>
     3# kBuild Tool Config - Visual C++ 14.1 (aka Visual 2017 and MSC v19.10), targeting AMD64.
     4#
     5
     6#
     7# Copyright (c) 2004-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
    88#
    99# This file is part of kBuild.
     
    3232#
    3333
    34 TOOL_VCC120 := Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting $(KBUILD_TARGET).
    35 
     34TOOL_VCC141 := Visual C++ 14.1 (aka Visual 2017 and MSC v19.1), targeting $(KBUILD_TARGET).
     35
     36ifndef INCLUDED_WIN_COMMON_KMK
     37 include $(KBUILD_PATH)/win-common.kmk
     38endif
     39
     40#
    3641# Tool Specific Properties
    37 ifndef PATH_TOOL_VCC120
    38  PATH_TOOL_VCC120 := $(wildcard $(KBUILD_DEVTOOLS_TRG)/vcc/v12*)
    39  ifeq ($(PATH_TOOL_VCC120),)
    40   PATH_TOOL_VCC120 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v12*)
     42#
     43ifndef PATH_TOOL_VCC141
     44 PATH_TOOL_VCC141 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.amd64/vcc/v141*)))
     45 ifeq ($(PATH_TOOL_VCC141),)
     46  PATH_TOOL_VCC141 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/vcc/v141*)))
    4147 endif
    42  ifeq ($(PATH_TOOL_VCC120),)
    43   PATH_TOOL_VCC120 := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/vcc/v12*)
     48 ifeq ($(PATH_TOOL_VCC141),)
     49  PATH_TOOL_VCC141 := $(PATH_TOOL_VCC141X86)
    4450 endif
    45  ifeq ($(PATH_TOOL_VCC120),)
    46   PATH_TOOL_VCC120 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/vcc/v12*)
     51 ifeq ($(PATH_TOOL_VCC141),)
     52  PATH_TOOL_VCC141 := $(PATH_TOOL_VCC141)
    4753 endif
    48  ifeq ($(PATH_TOOL_VCC120),)
    49   PATH_TOOL_VCC120 := $(lastword $(sort $(PATH_TOOL_VCC120)))
     54 ifeq ($(PATH_TOOL_VCC141),)
     55  PATH_TOOL_VCC141 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/win.x86/vcc/v141*)))
     56  ifeq ($(PATH_TOOL_VCC141),)
     57   PATH_TOOL_VCC141 := $(firstfile $(foreach ver,2017 2019,$(foreachfile progfilesdir,$(WINCMN_PROGRAM_FILES_LIST)\
     58        , $(rsortfiles $(qwildcard ,$(progfilesdir)/Microsoft\ Visual\ Studio/$(ver)/BuildTools/VC/Tools/MSVC/14.1?.*)))))
     59   ifeq ($(PATH_TOOL_VCC141),)
     60    $(warning kBuild: PATH_TOOL_VCC141 cannot be determined!)
     61    PATH_TOOL_VCC141 := $(KBUILD_DEVTOOLS)/win.x86/vcc/v141
     62   endif
     63  endif
    5064 endif
    51  # if not found, we'll enter 'pathless' mode.
    5265else
    5366 # Resolve any fancy stuff once and for all.
    54  PATH_TOOL_VCC120 := $(PATH_TOOL_VCC120)
    55 endif
    56 ifneq ($(PATH_TOOL_VCC120),)
    57  if "$(KBUILD_HOST).$(KBUILD_HOST_ARCH)" == "win.amd64" && exists("$(PATH_TOOL_VCC120AMD64)/bin/amd64") # Missing in express edition.
    58  PATH_TOOL_VCC120_BIN.amd64 ?= $(PATH_TOOL_VCC120)/bin/amd64
    59  else
    60  PATH_TOOL_VCC120_BIN.amd64 ?= $(PATH_TOOL_VCC120)/bin/x86_amd64
     67 PATH_TOOL_VCC141 := $(PATH_TOOL_VCC141)
     68endif
     69
     70ifndef PATH_TOOL_VCC141_BASE_BIN
     71PATH_TOOL_VCC141_BASE_BIN := $(PATH_TOOL_VCC141)/bin
     72endif
     73ifndef PATH_TOOL_VCC141_HOST_BIN
     74PATH_TOOL_VCC141_HOST_BIN := $(PATH_TOOL_VCC141_BASE_BIN)/Host$(WINCMN_MAP_ARCH.$(KBUILD_HOST_ARCH))
     75endif
     76ifndef PATH_TOOL_VCC141_BIN
     77PATH_TOOL_VCC141_BIN      := $(PATH_TOOL_VCC141_HOST_BIN)/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))
     78endif
     79PATH_TOOL_VCC141_BIN_QSH  := $(requote sh,$(PATH_TOOL_VCC141_BIN))
     80
     81PATH_TOOL_VCC141_LIB.amd64         ?= $(PATH_TOOL_VCC141)/lib/x64
     82PATH_TOOL_VCC141_LIB.arm32         ?= $(PATH_TOOL_VCC141)/lib/arm
     83PATH_TOOL_VCC141_LIB.arm64         ?= $(PATH_TOOL_VCC141)/lib/arm64
     84PATH_TOOL_VCC141_LIB.x86           ?= $(PATH_TOOL_VCC141)/lib/x86
     85
     86PATH_TOOL_VCC141_ONECORE_LIB.amd64 ?= $(PATH_TOOL_VCC141)/lib/onecore/x64
     87PATH_TOOL_VCC141_ONECORE_LIB.arm32 ?= $(PATH_TOOL_VCC141)/lib/onecore/arm
     88PATH_TOOL_VCC141_ONECORE_LIB.arm64 ?= $(PATH_TOOL_VCC141)/lib/onecore/arm64
     89PATH_TOOL_VCC141_ONECORE_LIB.x86   ?= $(PATH_TOOL_VCC141)/lib/onecore/x86
     90
     91PATH_TOOL_VCC141_INC               ?= $(PATH_TOOL_VCC141)/include
     92
     93PATH_TOOL_VCC141_ATLMFC            ?= $(PATH_TOOL_VCC141)/atlmfc
     94PATH_TOOL_VCC141_ATLMFC_INC        ?= $(PATH_TOOL_VCC141_ATLMFC)/include
     95PATH_TOOL_VCC141_ATLMFC_LIB.x86    ?= $(PATH_TOOL_VCC141_ATLMFC)/lib/x86
     96PATH_TOOL_VCC141_ATLMFC_LIB.amd64  ?= $(PATH_TOOL_VCC141_ATLMFC)/lib/x64
     97
     98TOOL_VCC141_CC      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/cl.exe
     99TOOL_VCC141_CXX     ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/cl.exe
     100TOOL_VCC141_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/ml64.exe
     101#TOOL_VCC141_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/lib.exe - just an exec wrapper for the below
     102TOOL_VCC141_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/link.exe /LIB
     103TOOL_VCC141_LD      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/link.exe
     104TOOL_VCC141_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/dumpbin.exe
     105TOOL_VCC141_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/editbin.exe
     106
     107TOOL_VCC141_RC  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED)
     108TOOL_VCC141_MT  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED)
     109
     110undefine TOOL_VCC141_USE_KSUBMIT # for now
     111ifdef TOOL_VCC141_USE_KSUBMIT
     112 ifeq ($(KBUILD_HOST),win)
     113  ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC141_BIN)),-3),64/)
     114   TOOL_VCC141_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
     115   TOOL_VCC141_KSUBMIT_DD = $(TOOL_VCC141_KSUBMIT) --
     116  else
     117   TOOL_VCC141_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
     118   TOOL_VCC141_KSUBMIT_DD = $(TOOL_VCC141_KSUBMIT) --
     119  endif
    61120 endif
    62  PATH_TOOL_VCC120_BIN.x86   ?= $(PATH_TOOL_VCC120)/bin
    63  PATH_TOOL_VCC120_BIN       ?= $(PATH_TOOL_VCC120_BIN.$(KBUILD_TARGET_ARCH))
    64  PATH_TOOL_VCC120_LIB.amd64 ?= $(PATH_TOOL_VCC120)/lib/amd64
    65  PATH_TOOL_VCC120_LIB.x86   ?= $(PATH_TOOL_VCC120)/lib
    66  PATH_TOOL_VCC120_LIB       ?= $(PATH_TOOL_VCC120_LIB.$(KBUILD_TARGET_ARCH))
    67  PATH_TOOL_VCC120_INC       ?= $(PATH_TOOL_VCC120)/include
    68  PATH_TOOL_VCC120_ATLMFC    ?= $(PATH_TOOL_VCC120X86)/atlmfc
    69  PATH_TOOL_VCC120_ATLMFC_INC       ?= $(PATH_TOOL_VCC120_ATLMFC)/include
    70  PATH_TOOL_VCC120_ATLMFC_LIB.amd64 ?= $(PATH_TOOL_VCC120_ATLMFC)/lib
    71  PATH_TOOL_VCC120_ATLMFC_LIB.x86   ?= $(PATH_TOOL_VCC120_ATLMFC)/lib/amd64
    72  PATH_TOOL_VCC120_ATLMFC_LIB       ?= $(PATH_TOOL_VCC120_ATLMFC_LIB.$(KBUILD_TARGET_ARCH))
    73  TOOL_VCC120_CC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/cl.exe
    74  TOOL_VCC120_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/cl.exe
    75  TOOL_VCC120_AS  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/ml64.exe
    76  TOOL_VCC120_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/lib.exe
    77  TOOL_VCC120_LD  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/link.exe
    78  TOOL_VCC120_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/dumpbin.exe
    79  TOOL_VCC120_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120_BIN)/editbin.exe
    80 else
    81  # Pathless, relies on the environment.
    82  TOOL_VCC120_CC  ?= $(EXEC_X86_WIN32) cl.exe
    83  TOOL_VCC120_CXX ?= $(EXEC_X86_WIN32) cl.exe
    84  TOOL_VCC120_AS  ?= $(EXEC_X86_WIN32) ml64.exe
    85  TOOL_VCC120_AR  ?= $(EXEC_X86_WIN32) lib.exe
    86  TOOL_VCC120_LD  ?= $(EXEC_X86_WIN32) link.exe
    87  TOOL_VCC120_DUMPBIN ?= $(EXEC_X86_WIN32) dumpbin.exe
    88  TOOL_VCC120_EDITBIN ?= $(EXEC_X86_WIN32) editbin.exe
    89 endif
    90 TOOL_VCC120_RC   ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC120_RC_CACHED)
    91 TOOL_VCC120_MT   ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC120_MT_CACHED)
    92 
    93 # The following in duplicated in VCC120.kmk and VCC120X86.kmk.
    94 TOOL_VCC120_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstword  \
    95        $(if-expr defined(PATH_SDK_WINPSDK71_BIN), $(wildcard $(PATH_SDK_WINPSDK71_BIN)/$2)) \
    96        $(if-expr defined(PATH_SDK_WINPSDK_BIN)  , $(wildcard $(PATH_SDK_WINPSDK_BIN)/$2)) \
    97         $(rsort $(wildcard $(KBUILD_DEVTOOLS_HST)/sdk/*/[Bb][Ii][Nn]/$2)) \
    98         $(rsort $(wildcard $(KBUILD_DEVTOOLS_HST_ALT)/sdk/*/[Bb][Ii][Nn]/$2)) \
     121endif
     122
     123## Helper for finding rc.exe and mt.exe in the SDK.
     124TOOL_VCC141_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstfile  \
     125       $(if-expr defined(PATH_SDK_WINSDK10_BIN) , $(qwildcard ,$(PATH_SDK_WINSDK10_BIN)/$2)) \
     126       $(if-expr defined(PATH_SDK_WINPSDK71_BIN), $(qwildcard ,$(PATH_SDK_WINPSDK71_BIN)/$2)) \
     127       $(if-expr defined(PATH_SDK_WINPSDK_BIN)  , $(qwildcard ,$(PATH_SDK_WINPSDK_BIN)/$2)) \
     128        $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS_HST)/sdk/*/[Bb][Ii][Nn]/$2)) \
     129        $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS_HST_ALT)/sdk/*/[Bb][Ii][Nn]/$2)) \
    99130        $1))
    100 TOOL_VCC120_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC120_FN_FIND_SDK_TOOL_SUB),)$($3)
    101 
    102 ## Disabled fast DEP_IDB based dependencies.
    103 #VCC120_OLD_DEPS = 1
     131TOOL_VCC141_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC141_FN_FIND_SDK_TOOL_SUB),)$($3)
    104132
    105133## Constructs the correct .pdb name (the name is lowercased).
    106134# @param    $(1)        Base name, no extention.
    107135# @param    $(2)        The extension.
    108 TOOL_VCC120_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
    109 
    110 
    111 # General Properties used by kBuild
    112 TOOL_VCC120_COBJSUFF         ?= .obj
    113 TOOL_VCC120_CFLAGS           ?= -TC -nologo -Zi
    114 TOOL_VCC120_CFLAGS.debug     ?=
    115 TOOL_VCC120_CFLAGS.dbgopt    ?= -O2
    116 TOOL_VCC120_CFLAGS.release   ?= -O2
    117 TOOL_VCC120_CFLAGS.profile   ?= -O2
    118 TOOL_VCC120_CINCS            ?= $(PATH_TOOL_VCC120_INC)
    119 TOOL_VCC120_CDEFS            ?=
    120 
    121 TOOL_VCC120_CXXOBJSUFF       ?= .obj
    122 TOOL_VCC120_CXXFLAGS         ?= -TP -nologo -Zi
    123 TOOL_VCC120_CXXFLAGS.debug   ?=
    124 TOOL_VCC120_CXXFLAGS.dbgopt  ?= -O2
    125 TOOL_VCC120_CXXFLAGS.release ?= -O2
    126 TOOL_VCC120_CXXFLAGS.profile ?= -O2
    127 TOOL_VCC120_CXXINCS          ?= $(PATH_TOOL_VCC120_INC) $(PATH_TOOL_VCC120_ATLMFC_INC)
    128 TOOL_VCC120_CXXDEFS          ?=
    129 
    130 TOOL_VCC120_ASOBJSUFF        ?= .obj
    131 
    132 TOOL_VCC120_RCOBJSUFF        ?= .res
    133 TOOL_VCC120_RCINCS           ?= $(PATH_TOOL_VCC120_INC) $(PATH_TOOL_VCC120_ATLMFC_INC)
    134 
    135 TOOL_VCC120_ARFLAGS.amd64    ?= -machine:amd64
    136 TOOL_VCC120_ARFLAGS.x86      ?= -machine:x86
    137 TOOL_VCC120_ARFLAGS          ?= -nologo
    138 TOOL_VCC120_ARLIBSUFF        ?= .lib
    139 
    140 TOOL_VCC120_LDFLAGS.amd64    ?= -machine:amd64
    141 TOOL_VCC120_LDFLAGS.x86      ?= -machine:x86
    142 TOOL_VCC120_LDFLAGS          ?= -nologo
    143 TOOL_VCC120_LDFLAGS.debug    ?= -debug
    144 TOOL_VCC120_LDFLAGS.dbgopt   ?= -debug
    145 TOOL_VCC120_LDFLAGS.profile  ?= -debug
    146 TOOL_VCC120_LDFLAGS.release  ?=
    147 TOOL_VCC120_LIBPATH.amd64    ?= $(PATH_TOOL_VCC120_LIB.amd64) $(PATH_TOOL_VCC120_ATLMFC_LIB.amd64)
    148 TOOL_VCC120_LIBPATH.x86      ?= $(PATH_TOOL_VCC120_LIB.x86) $(PATH_TOOL_VCC120_ATLMFC_LIB.x86)
     136TOOL_VCC141_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
     137
     138
     139#
     140# Properties used by kBuild
     141#
     142TOOL_VCC141_COBJSUFF         ?= .obj
     143TOOL_VCC141_CFLAGS           ?= -TC -nologo -Zi
     144TOOL_VCC141_CFLAGS.debug     ?=
     145TOOL_VCC141_CFLAGS.dbgopt    ?= -O2
     146TOOL_VCC141_CFLAGS.release   ?= -O2
     147TOOL_VCC141_CFLAGS.profile   ?= -O2
     148TOOL_VCC141_CINCS            ?= $(PATH_TOOL_VCC141_INC)
     149TOOL_VCC141_CDEFS            ?=
     150
     151TOOL_VCC141_CXXOBJSUFF       ?= .obj
     152TOOL_VCC141_CXXFLAGS         ?= -TP -nologo -Zi
     153TOOL_VCC141_CXXFLAGS.debug   ?=
     154TOOL_VCC141_CXXFLAGS.dbgopt  ?= -O2
     155TOOL_VCC141_CXXFLAGS.release ?= -O2
     156TOOL_VCC141_CXXFLAGS.profile ?= -O2
     157TOOL_VCC141_CXXINCS          ?= $(PATH_TOOL_VCC141_INC) $(PATH_TOOL_VCC141_ATLMFC_INC)
     158TOOL_VCC141_CXXDEFS          ?=
     159
     160TOOL_VCC141_ASOBJSUFF        ?= .obj
     161
     162TOOL_VCC141_RCOBJSUFF        ?= .res
     163TOOL_VCC141_RCINCS           ?= $(PATH_TOOL_VCC141_INC) $(PATH_TOOL_VCC141_ATLMFC_INC)
     164
     165TOOL_VCC141_ARFLAGS          ?= -nologo
     166TOOL_VCC141_ARFLAGS.x86      ?= -machine:x86
     167TOOL_VCC141_ARFLAGS.amd64    ?= -machine:amd64
     168TOOL_VCC141_ARFLAGS.arm32    ?= -machine:arm
     169TOOL_VCC141_ARLIBSUFF        ?= .lib
     170
     171TOOL_VCC141_LDFLAGS          ?= -nologo
     172TOOL_VCC141_LDFLAGS.x86      ?= -machine:x86
     173TOOL_VCC141_LDFLAGS.amd64    ?= -machine:amd64
     174TOOL_VCC141_LDFLAGS.arm32    ?= -machine:arm
     175TOOL_VCC141_LDFLAGS.debug    ?= -debug
     176TOOL_VCC141_LDFLAGS.dbgopt   ?= -debug
     177TOOL_VCC141_LDFLAGS.profile  ?= -debug
     178TOOL_VCC141_LDFLAGS.release  ?=
    149179
    150180
     
    163193# @param    $(outbase)  Output basename (full). Use this for list files and such.
    164194# @param    $(objsuff)  Object suffix.
    165 TOOL_VCC120_COMPILE_C_DEPEND =
    166 TOOL_VCC120_COMPILE_C_DEPORD =
    167 TOOL_VCC120_COMPILE_C_OUTPUT =
    168 TOOL_VCC120_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC120_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120_PDB, $(outbase)-obj,idb)
    169 define TOOL_VCC120_COMPILE_C_CMDS
    170         $(QUIET)$(TOOL_VCC120_CC) -c\
    171                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     195TOOL_VCC141_COMPILE_C_DEPEND =
     196TOOL_VCC141_COMPILE_C_DEPORD =
     197TOOL_VCC141_COMPILE_C_OUTPUT =
     198TOOL_VCC141_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb)
     199ifdef TOOL_VCC141_KSUBMIT
     200 TOOL_VCC141_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
     201 define TOOL_VCC141_COMPILE_C_CMDS
     202        $(QUIET)$(TOOL_VCC141_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     203                -- $(TOOL_VCC141_CC) -c\
     204                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    172205                -Fd$(outbase)-obj.pdb \
    173206                -Fo$(obj)\
    174207                $(subst /,\\,$(abspath $(source)))
     208 endef
     209else
     210 define TOOL_VCC141_COMPILE_C_CMDS
     211        $(QUIET)$(TOOL_VCC141_CC) -c\
     212                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
     213                -Fd$(outbase)-obj.pdb \
     214                -Fo$(obj)\
     215                $(subst /,\\,$(abspath $(source)))
    175216        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    176 endef
     217 endef
     218endif # !TOOL_VCC141_KSUBMIT
    177219
    178220
     
    190232# @param    $(outbase)  Output basename (full). Use this for list files and such.
    191233# @param    $(objsuff)  Object suffix.
    192 TOOL_VCC120_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    193 TOOL_VCC120_COMPILE_CXX_DEPORD =
    194 TOOL_VCC120_COMPILE_CXX_OUTPUT =
    195 TOOL_VCC120_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
    196         ,,$(call TOOL_VCC120_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120_PDB, $(outbase)-obj,idb))
    197 define TOOL_VCC120_COMPILE_CXX_CMDS
    198         $(QUIET)$(TOOL_VCC120_CXX) -c\
    199                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     234TOOL_VCC141_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
     235TOOL_VCC141_COMPILE_CXX_DEPORD =
     236TOOL_VCC141_COMPILE_CXX_OUTPUT =
     237TOOL_VCC141_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     238        ,,$(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb))
     239ifdef TOOL_VCC141_KSUBMIT
     240 TOOL_VCC141_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
     241 define TOOL_VCC141_COMPILE_CXX_CMDS
     242        $(QUIET)$(TOOL_VCC141_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     243                -- $(TOOL_VCC141_CXX) -c\
     244                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    200245                $(if-expr defined($(target)_PCH_HDR)\
    201246                ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\
     
    203248                -Fo$(obj)\
    204249                $(subst /,\\,$(abspath $(source)))
     250 endef
     251else
     252 define TOOL_VCC141_COMPILE_CXX_CMDS
     253        $(QUIET)$(TOOL_VCC141_CXX) -c\
     254                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
     255                $(if-expr defined($(target)_PCH_HDR)\
     256                ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\
     257                -Fd$(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB),$($(target)_1_VCC_COMMON_OBJ_PDB),$(outbase)-obj.pdb) \
     258                -Fo$(obj)\
     259                $(subst /,\\,$(abspath $(source)))
    205260        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    206 endef
     261 endef
     262endif # !TOOL_VCC141_KSUBMIT
    207263
    208264
     
    213269# related _1_VCC_PCH_FILE and add -Yc.
    214270#
    215 TOOL_VCC120-PCH                         := Helper for creating precompiled header using CXX handling.
    216 TOOL_VCC120-PCH_EXTENDS                 := VCC120
    217 TOOL_VCC120-PCH_CXXOBJSUFF              := .obj
    218 TOOL_VCC120-PCH_CXXINCS                  = $(TOOL_VCC120_CXXINCS)
    219 TOOL_VCC120-PCH_CXXFLAGS                 = $(TOOL_VCC120_CXXFLAGS) -FS
    220 TOOL_VCC120-PCH_CXXFLAGS.debug           = $(TOOL_VCC120_CXXFLAGS.debug)
    221 TOOL_VCC120-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC120_CXXFLAGS.dbgopt)
    222 TOOL_VCC120-PCH_CXXFLAGS.release         = $(TOOL_VCC120_CXXFLAGS.release)
    223 TOOL_VCC120-PCH_CXXFLAGS.profile         = $(TOOL_VCC120_CXXFLAGS.profile)
    224 TOOL_VCC120-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
    225 TOOL_VCC120-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
    226 TOOL_VCC120-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    227 TOOL_VCC120-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
    228 ifdef TOOL_VCC120_KSUBMIT
    229  define TOOL_VCC120-PCH_COMPILE_CXX_CMDS
    230         $(QUIET)$(TOOL_VCC120_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
    231                 -- $(TOOL_VCC120_CXX) -c -Yc\
    232                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     271TOOL_VCC141-PCH                         := Helper for creating precompiled header using CXX handling.
     272TOOL_VCC141-PCH_EXTENDS                 := VCC141
     273TOOL_VCC141-PCH_CXXOBJSUFF              := .obj
     274TOOL_VCC141-PCH_CXXINCS                  = $(TOOL_VCC141_CXXINCS)
     275TOOL_VCC141-PCH_CXXFLAGS                 = $(TOOL_VCC141_CXXFLAGS) -FS
     276TOOL_VCC141-PCH_CXXFLAGS.debug           = $(TOOL_VCC141_CXXFLAGS.debug)
     277TOOL_VCC141-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC141_CXXFLAGS.dbgopt)
     278TOOL_VCC141-PCH_CXXFLAGS.release         = $(TOOL_VCC141_CXXFLAGS.release)
     279TOOL_VCC141-PCH_CXXFLAGS.profile         = $(TOOL_VCC141_CXXFLAGS.profile)
     280TOOL_VCC141-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     281TOOL_VCC141-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     282TOOL_VCC141-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     283TOOL_VCC141-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     284ifdef TOOL_VCC141_KSUBMIT
     285 define TOOL_VCC141-PCH_COMPILE_CXX_CMDS
     286        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     287        $(QUIET)$(TOOL_VCC141_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     288                -- $(TOOL_VCC141_CXX) -c -Yc\
     289                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    233290               -Fp$($(target)_1_VCC_PCH_FILE) \
    234291                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     
    238295 endef
    239296else
    240  define TOOL_VCC120-PCH_COMPILE_CXX_CMDS
    241         $(QUIET)$(TOOL_VCC120_CXX) -c -Yc\
    242                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     297 define TOOL_VCC141-PCH_COMPILE_CXX_CMDS
     298        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     299        $(QUIET)$(TOOL_VCC141_CXX) -c -Yc\
     300                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    243301               -Fp$($(target)_1_VCC_PCH_FILE) \
    244302                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     
    249307
    250308 endef
    251 endif # !TOOL_VCC120_KSUBMIT
     309endif # !TOOL_VCC141_KSUBMIT
    252310
    253311
     
    267325# @param    $(outbase)  Output basename (full). Use this for list files and such.
    268326# @param    $(objsuff)  Object suffix.
    269 TOOL_VCC120_COMPILE_RC_OUTPUT =
    270 TOOL_VCC120_COMPILE_RC_DEPEND =
    271 TOOL_VCC120_COMPILE_RC_DEPORD =
    272 define TOOL_VCC120_COMPILE_RC_CMDS
    273         $(QUIET)$(TOOL_VCC120_RC) \
    274                 $(flags) $(addprefix /i, $(subst /,\\,$(incs))) $(addprefix /d, $(defs))\
     327TOOL_VCC141_COMPILE_RC_DEPEND =
     328TOOL_VCC141_COMPILE_RC_DEPORD =
     329TOOL_VCC141_COMPILE_RC_OUTPUT =
     330define TOOL_VCC141_COMPILE_RC_CMDS
     331        $(QUIET)$(TOOL_VCC141_RC) \
     332                $(flags) $(qaddprefix sh,/i, $(subst /,\\,$(incs))) $(qaddprefix sh,/d, $(defs))\
    275333                /fo$(obj)\
    276334                $(subst /,\\,$(abspath $(source)))
     
    288346# @param    $(outbase)  Output basename (full). Use this for list files and such.
    289347#
    290 TOOL_VCC120_LINK_LIBRARY_DEPEND = $(othersrc)
    291 TOOL_VCC120_LINK_LIBRARY_DEPORD =
    292 TOOL_VCC120_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    293 TOOL_VCC120_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
    294 define TOOL_VCC120_LINK_LIBRARY_CMDS
     348TOOL_VCC141_LINK_LIBRARY_DEPEND = $(othersrc)
     349TOOL_VCC141_LINK_LIBRARY_DEPORD =
     350TOOL_VCC141_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     351TOOL_VCC141_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
     352define TOOL_VCC141_LINK_LIBRARY_CMDS
    295353        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    296                 $(foreach arg,\
    297                         $(subst /,\\,$(objs) \
    298                         $(filter-out %.def,$(othersrc))) \
    299                         $(addprefix /DEF:,$(filter %.def,$(othersrc))) \
    300                         ,\"$(arg)\")
    301         $(QUIET)$(TOOL_VCC120_AR) $(flags) /OUT:$(out) @$(outbase).rsp
     354                $(qforeachfile u,arg, $(objs) $(filter-out %.def,$(othersrc)),$(quote-sh "$(subst /,\,$(arg))")) \
     355                $(qforeachfile u,arg, $(filter %.def,$(othersrc)),$(quote-sh "/DEF:$(subst /,\,$(arg))"))
     356        $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    302357endef
    303358
     
    317372# @param    $(outbase)      Output basename (full). Use this for list files and such.
    318373#
    319 TOOL_VCC120_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    320 TOOL_VCC120_LINK_PROGRAM_DEPORD =
    321 TOOL_VCC120_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    322 TOOL_VCC120_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    323 TOOL_VCC120_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
    324 TOOL_VCC120_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    325 define TOOL_VCC120_LINK_PROGRAM_CMDS
     374TOOL_VCC141_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     375TOOL_VCC141_LINK_PROGRAM_DEPORD =
     376TOOL_VCC141_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     377TOOL_VCC141_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     378TOOL_VCC141_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
     379TOOL_VCC141_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     380define TOOL_VCC141_LINK_PROGRAM_CMDS
    326381        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    327                 $(foreach arg,\
    328                     $(subst /,\\,$(objs)) \
    329                     $(subst /,\\,$(libs)) \
    330                         ,\"$(arg)\")
    331         $(QUIET)$(TOOL_VCC120_LD) $(flags) \
     382                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
     383        $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \
    332384                /OUT:$(out) \
    333385                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    335387                $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \
    336388                $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \
    337                 $(foreach p,$(libpath), /LIBPATH:$(p)) \
     389                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    338390                @$(outbase).rsp
    339 ifndef TOOL_VCC120_NO_AUTO_MANIFEST
     391ifndef TOOL_VCC141_NO_AUTO_MANIFEST
    340392        $(QUIET)$(TEST) -f $(out).manifest -- \
    341                 $(TOOL_VCC120_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
     393                $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
    342394endif
    343395endef
     
    358410#
    359411# @param    $(outbase)  Output basename (full). Use this for list files and such.
    360 TOOL_VCC120_LINK_DLL_DEPEND = $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    361 TOOL_VCC120_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
    362 TOOL_VCC120_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
    363 TOOL_VCC120_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
    364 TOOL_VCC120_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
    365 TOOL_VCC120_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
    366 TOOL_VCC120_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    367 define TOOL_VCC120_LINK_DLL_CMDS
     412TOOL_VCC141_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     413TOOL_VCC141_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
     414TOOL_VCC141_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
     415TOOL_VCC141_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
     416TOOL_VCC141_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
     417TOOL_VCC141_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
     418TOOL_VCC141_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     419define TOOL_VCC141_LINK_DLL_CMDS
    368420        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    369                 $(foreach arg,\
    370                     $(subst /,\\,$(objs)) \
    371                     $(subst /,\\,$(libs)) \
    372                         ,\"$(arg)\")
    373         $(QUIET)$(TOOL_VCC120_LD) $(flags) \
     421                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
     422        $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \
    374423                /OUT:$(out) \
    375424                /IMPLIB:$(outbase).lib \
     
    379428                $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \
    380429                $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \
    381                 $(foreach p,$(libpath), /LIBPATH:$(p)) \
     430                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    382431                @$(outbase).rsp
    383 ifndef TOOL_VCC120_NO_AUTO_MANIFEST
     432ifndef TOOL_VCC141_NO_AUTO_MANIFEST
    384433        $(QUIET)$(TEST) -f $(out).manifest -- \
    385                 $(TOOL_VCC120_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     434                $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    386435endif
    387436        $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib
    388         $(QUIET)$(CP) --changed --ignore-non-existing $(outbase).exp $(outbase).lib $(PATH_STAGE_LIB)/
     437        $(QUIET)$(CP) --changed -v --ignore-non-existing $(outbase).exp $(outbase).lib $(PATH_STAGE_LIB)/
    389438$(eval _DIRS += $(PATH_STAGE_LIB))
    390439endef
     
    405454#
    406455# @param    $(outbase)  Output basename (full). Use this for list files and such.
    407 TOOL_VCC120_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    408 TOOL_VCC120_LINK_SYSMOD_DEPORD =
    409 TOOL_VCC120_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    410 TOOL_VCC120_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    411 TOOL_VCC120_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
    412 TOOL_VCC120_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    413 define TOOL_VCC120_LINK_SYSMOD_CMDS
     456TOOL_VCC141_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     457TOOL_VCC141_LINK_SYSMOD_DEPORD =
     458TOOL_VCC141_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     459TOOL_VCC141_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     460TOOL_VCC141_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
     461TOOL_VCC141_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     462define TOOL_VCC141_LINK_SYSMOD_CMDS
    414463        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    415                 $(foreach arg,\
    416                     $(subst /,\\,$(objs)) \
    417                     $(subst /,\\,$(libs)) \
    418                         ,\"$(arg)\")
    419         $(QUIET)$(TOOL_VCC120_LD) $(flags) \
     464                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
     465        $(QUIET)$(TOOL_VCC141_KSUBMIT_DD) $(TOOL_VCC141_LD) $(flags) \
    420466                /OUT:$(out) \
    421467                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    423469                $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \
    424470                $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \
    425                 $(foreach p,$(libpath), /LIBPATH:$(p)) \
     471                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    426472                @$(outbase).rsp
    427 ifndef TOOL_VCC120_NO_AUTO_MANIFEST
     473ifndef TOOL_VCC141_NO_AUTO_MANIFEST
    428474        $(QUIET)$(TEST) -f $(out).manifest -- \
    429                 $(TOOL_VCC120_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     475                $(TOOL_VCC141_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    430476endif
    431477endef
  • trunk/kBuild/tools/VCC141AMD64.kmk

    r3313 r3323  
    11# $Id$
    22## @file
    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 <bird-kBuild-spam-xviiv@anduin.net>
     3# kBuild Tool Config - Visual C++ 14.1 (aka Visual 2017 and MSC v19.10), targeting AMD64.
     4#
     5
     6#
     7# Copyright (c) 2004-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
    88#
    99# This file is part of kBuild.
     
    3232#
    3333
    34 TOOL_VCC120AMD64 := Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting AMD64
    35 
     34ifndef TOOL_VCC141
     35 include $(KBUILD_PATH)/tools/VCC141.kmk
     36endif
     37
     38TOOL_VCC141AMD64 := Visual C++ 14.1 (aka Visual 2017 and MSC v19.1), targeting AMD64
     39
     40#
    3641# Tool Specific Properties
    37 ifndef PATH_TOOL_VCC120AMD64
    38  PATH_TOOL_VCC120AMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v12*)
    39  ifeq ($(PATH_TOOL_VCC120AMD64),)
    40   PATH_TOOL_VCC120AMD64 := $(PATH_TOOL_VCC120)
    41  endif
    42  ifeq ($(PATH_TOOL_VCC120AMD64),)
    43   PATH_TOOL_VCC120AMD64 := $(PATH_TOOL_VCC120X86)
    44  endif
    45  ifeq ($(PATH_TOOL_VCC120AMD64),)
    46   PATH_TOOL_VCC120AMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v12*)
    47  endif
    48  ifneq ($(PATH_TOOL_VCC120AMD64),)
    49   PATH_TOOL_VCC120AMD64 := $(lastword $(sort $(PATH_TOOL_VCC120AMD64)))
    50  else
    51   $(warning kBuild: PATH_TOOL_VCC120AMD64 cannot be determined!)
    52   PATH_TOOL_VCC120AMD64 := $(KBUILD_DEVTOOLS)/win.x86/vcc/v12
    53  endif
     42#
     43ifndef PATH_TOOL_VCC141AMD64
     44 PATH_TOOL_VCC141AMD64 := $(PATH_TOOL_VCC141)
    5445else
    5546 # Resolve any fancy stuff once and for all.
    56  PATH_TOOL_VCC120AMD64 := $(PATH_TOOL_VCC120AMD64)
    57 endif
    58 if "$(KBUILD_HOST).$(KBUILD_HOST_ARCH)" == "win.amd64" && exists("$(PATH_TOOL_VCC120AMD64)/bin/amd64") # Missing in express edition.
    59 PATH_TOOL_VCC120AMD64_BIN ?= $(PATH_TOOL_VCC120AMD64)/bin/amd64
    60 #$(error works now: $(PATH_TOOL_VCC120AMD64)/bin/amd64)
     47 PATH_TOOL_VCC141AMD64 := $(PATH_TOOL_VCC141AMD64)
     48endif
     49
     50ifndef PATH_TOOL_VCC141AMD64_BIN
     51PATH_TOOL_VCC141AMD64_BIN     := $(PATH_TOOL_VCC141_HOST_BIN)/x64
    6152else
    62 #$(error no joy: $(PATH_TOOL_VCC120AMD64)/bin/amd64)
    63 PATH_TOOL_VCC120AMD64_BIN_DLL ?= $(PATH_TOOL_VCC120AMD64)/bin
    64 PATH_TOOL_VCC120AMD64_BIN ?= $(PATH_TOOL_VCC120AMD64)/bin/x86_amd64
    65 endif
    66 PATH_TOOL_VCC120AMD64_LIB ?= $(PATH_TOOL_VCC120AMD64)/lib/amd64
    67 PATH_TOOL_VCC120AMD64_INC ?= $(PATH_TOOL_VCC120AMD64)/include
    68 PATH_TOOL_VCC120AMD64_ATLMFC ?= $(PATH_TOOL_VCC120AMD64)/atlmfc
    69 PATH_TOOL_VCC120AMD64_ATLMFC_INC ?= $(PATH_TOOL_VCC120AMD64_ATLMFC)/include
    70 PATH_TOOL_VCC120AMD64_ATLMFC_LIB ?= $(PATH_TOOL_VCC120AMD64_ATLMFC)/lib/amd64
    71 TOOL_VCC120AMD64_CC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/cl.exe
    72 TOOL_VCC120AMD64_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/cl.exe
    73 TOOL_VCC120AMD64_AS  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/ml64.exe
    74 #TOOL_VCC120AMD64_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/lib.exe - just an exec wrapper for the below
    75 TOOL_VCC120AMD64_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/link.exe /LIB
    76 TOOL_VCC120AMD64_LD  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/link.exe
    77 TOOL_VCC120AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/dumpbin.exe
    78 TOOL_VCC120AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/editbin.exe
    79 TOOL_VCC120AMD64_RC  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC120_RC_CACHED)
    80 TOOL_VCC120AMD64_MT  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC120_MT_CACHED)
    81 ifdef TOOL_VCC120AMD64_USE_KSUBMIT
     53PATH_TOOL_VCC141AMD64_BIN     := $(PATH_TOOL_VCC141_BIN)
     54endif
     55PATH_TOOL_VCC141AMD64_BIN_QSH := $(requote sh,$(PATH_TOOL_VCC141AMD64_BIN))
     56
     57ifndef PATH_TOOL_VCC141AMD64_LIB
     58PATH_TOOL_VCC141AMD64_LIB     := $(PATH_TOOL_VCC141_LIB.amd64)
     59endif
     60ifndef PATH_TOOL_VCC141_ONECORE_LIB
     61PATH_TOOL_VCC141_ONECORE_LIB  := $(PATH_TOOL_VCC141_ONECORE_LIB.amd64)
     62endif
     63
     64ifndef PATH_TOOL_VCC141AMD64_INC
     65PATH_TOOL_VCC141AMD64_INC     := $(PATH_TOOL_VCC141_INC)
     66endif
     67
     68ifndef PATH_TOOL_VCC141AMD64_ATLMFC_INC
     69PATH_TOOL_VCC141AMD64_ATLMFC_INC := $(PATH_TOOL_VCC141_ATLMFC_INC.amd64)
     70endif
     71ifndef PATH_TOOL_VCC141AMD64_ATLMFC_LIB
     72PATH_TOOL_VCC141AMD64_ATLMFC_LIB := $(PATH_TOOL_VCC141_ATLMFC_LIB.amd64)
     73endif
     74
     75TOOL_VCC141AMD64_CC      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/cl.exe
     76TOOL_VCC141AMD64_CXX     ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/cl.exe
     77TOOL_VCC141AMD64_AS      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/ml64.exe
     78#TOOL_VCC141AMD64_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/lib.exe - just an exec wrapper for the below
     79TOOL_VCC141AMD64_AR      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/link.exe /LIB
     80TOOL_VCC141AMD64_LD      ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/link.exe
     81TOOL_VCC141AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/dumpbin.exe
     82TOOL_VCC141AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/editbin.exe
     83
     84TOOL_VCC141AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED)
     85TOOL_VCC141AMD64_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED)
     86
     87undefine TOOL_VCC141AMD64_USE_KSUBMIT # for now
     88ifdef TOOL_VCC141AMD64_USE_KSUBMIT
    8289 ifeq ($(KBUILD_HOST),win)
    83   ifneq ($(substr $(PATH_TOOL_VCC120AMD64_BIN),-9),x86_amd64)
    84    TOOL_VCC120AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
    85    ifdef PATH_TOOL_VCC120AMD64_BIN_DLL
    86     TOOL_VCC120AMD64_KSUBMIT += --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)'
    87    endif
    88    TOOL_VCC120AMD64_KSUBMIT_DD = $(TOOL_VCC120AMD64_KSUBMIT) --
     90  ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC141AMD64_BIN)),-3),64/)
     91   TOOL_VCC141AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
     92   TOOL_VCC141AMD64_KSUBMIT_DD = $(TOOL_VCC141AMD64_KSUBMIT) --
    8993  else
    90    # "fatal error C1902: Program database manager mismatch; please check your installation" when mixing with the 32-bit compiler.
    91    #TOOL_VCC120AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
    92    #TOOL_VCC120AMD64_KSUBMIT_DD = $(TOOL_VCC120AMD64_KSUBMIT) --
     94   TOOL_VCC141AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
     95   TOOL_VCC141AMD64_KSUBMIT_DD = $(TOOL_VCC141AMD64_KSUBMIT) --
    9396  endif
    9497 endif
    95 else ifdef PATH_TOOL_VCC120AMD64_BIN_DLL
    96  TOOL_VCC120AMD64_KSUBMIT_DD  = $(REDIRECT) --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)' --
    97 endif
    98 
    99 # The following in duplicated in VCC120.kmk and VCC120X86.kmk.
    100 TOOL_VCC120_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstword  \
    101        $(if-expr defined(PATH_SDK_WINPSDK71_BIN), $(wildcard $(PATH_SDK_WINPSDK71_BIN)/$2)) \
    102        $(if-expr defined(PATH_SDK_WINPSDK_BIN)  , $(wildcard $(PATH_SDK_WINPSDK_BIN)/$2)) \
    103         $(rsort $(wildcard $(KBUILD_DEVTOOLS_HST)/sdk/*/[Bb][Ii][Nn]/$2)) \
    104         $(rsort $(wildcard $(KBUILD_DEVTOOLS_HST_ALT)/sdk/*/[Bb][Ii][Nn]/$2)) \
    105         $1))
    106 TOOL_VCC120_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC120_FN_FIND_SDK_TOOL_SUB),)$($3)
    107 
    108 ## Disabled fast DEP_IDB based dependencies.
    109 #VCC120AMD64_OLD_DEPS = 1
    110 
    111 ## Constructs the correct .pdb name (the name is lowercased).
    112 # @param    $(1)        Base name, no extention.
    113 # @param    $(2)        The extension.
    114 TOOL_VCC120AMD64_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
    115 
    116 
    117 # General Properties used by kBuild
    118 TOOL_VCC120AMD64_COBJSUFF         ?= .obj
    119 TOOL_VCC120AMD64_CFLAGS           ?= -TC -nologo -Zi
    120 TOOL_VCC120AMD64_CFLAGS.debug     ?=
    121 TOOL_VCC120AMD64_CFLAGS.dbgopt    ?= -O2
    122 TOOL_VCC120AMD64_CFLAGS.release   ?= -O2
    123 TOOL_VCC120AMD64_CFLAGS.profile   ?= -O2
    124 TOOL_VCC120AMD64_CINCS            ?= $(PATH_TOOL_VCC120AMD64_INC)
    125 TOOL_VCC120AMD64_CDEFS            ?=
    126 
    127 TOOL_VCC120AMD64_CXXOBJSUFF       ?= .obj
    128 TOOL_VCC120AMD64_CXXFLAGS         ?= -TP -nologo -Zi
    129 TOOL_VCC120AMD64_CXXFLAGS.debug   ?=
    130 TOOL_VCC120AMD64_CXXFLAGS.dbgopt  ?= -O2
    131 TOOL_VCC120AMD64_CXXFLAGS.release ?= -O2
    132 TOOL_VCC120AMD64_CXXFLAGS.profile ?= -O2
    133 TOOL_VCC120AMD64_CXXINCS          ?= $(PATH_TOOL_VCC120AMD64_INC) $(PATH_TOOL_VCC120AMD64_ATLMFC_INC)
    134 TOOL_VCC120AMD64_CXXDEFS          ?=
    135 
    136 TOOL_VCC120AMD64_ASOBJSUFF        ?= .obj
    137 
    138 TOOL_VCC120AMD64_RCOBJSUFF        ?= .res
    139 TOOL_VCC120AMD64_RCINCS           ?= $(PATH_TOOL_VCC120AMD64_INC) $(PATH_TOOL_VCC120AMD64_ATLMFC_INC)
    140 
    141 TOOL_VCC120AMD64_ARFLAGS          ?= -nologo -machine:amd64
    142 TOOL_VCC120AMD64_ARLIBSUFF        ?= .lib
    143 
    144 TOOL_VCC120AMD64_LDFLAGS          ?= -nologo -machine:amd64
    145 TOOL_VCC120AMD64_LDFLAGS.debug    ?= -debug
    146 TOOL_VCC120AMD64_LDFLAGS.dbgopt   ?= -debug
    147 TOOL_VCC120AMD64_LDFLAGS.profile  ?= -debug
    148 TOOL_VCC120AMD64_LDFLAGS.release  ?=
     98endif
     99
     100
     101#
     102# Properties used by kBuild
     103#
     104TOOL_VCC141AMD64_COBJSUFF         ?= .obj
     105TOOL_VCC141AMD64_CFLAGS           ?= -TC -nologo -Zi
     106TOOL_VCC141AMD64_CFLAGS.debug     ?=
     107TOOL_VCC141AMD64_CFLAGS.dbgopt    ?= -O2
     108TOOL_VCC141AMD64_CFLAGS.release   ?= -O2
     109TOOL_VCC141AMD64_CFLAGS.profile   ?= -O2
     110TOOL_VCC141AMD64_CINCS            ?= $(PATH_TOOL_VCC141AMD64_INC)
     111TOOL_VCC141AMD64_CDEFS            ?=
     112
     113TOOL_VCC141AMD64_CXXOBJSUFF       ?= .obj
     114TOOL_VCC141AMD64_CXXFLAGS         ?= -TP -nologo -Zi
     115TOOL_VCC141AMD64_CXXFLAGS.debug   ?=
     116TOOL_VCC141AMD64_CXXFLAGS.dbgopt  ?= -O2
     117TOOL_VCC141AMD64_CXXFLAGS.release ?= -O2
     118TOOL_VCC141AMD64_CXXFLAGS.profile ?= -O2
     119TOOL_VCC141AMD64_CXXINCS          ?= $(PATH_TOOL_VCC141AMD64_INC) $(PATH_TOOL_VCC141AMD64_ATLMFC_INC)
     120TOOL_VCC141AMD64_CXXDEFS          ?=
     121
     122TOOL_VCC141AMD64_ASOBJSUFF        ?= .obj
     123
     124TOOL_VCC141AMD64_RCOBJSUFF        ?= .res
     125TOOL_VCC141AMD64_RCINCS           ?= $(PATH_TOOL_VCC141AMD64_INC) $(PATH_TOOL_VCC141AMD64_ATLMFC_INC)
     126
     127TOOL_VCC141AMD64_ARFLAGS          ?= -nologo -machine:amd64
     128TOOL_VCC141AMD64_ARLIBSUFF        ?= .lib
     129
     130TOOL_VCC141AMD64_LDFLAGS          ?= -nologo -machine:amd64
     131TOOL_VCC141AMD64_LDFLAGS.debug    ?= -debug
     132TOOL_VCC141AMD64_LDFLAGS.dbgopt   ?= -debug
     133TOOL_VCC141AMD64_LDFLAGS.profile  ?= -debug
     134TOOL_VCC141AMD64_LDFLAGS.release  ?=
    149135
    150136
     
    163149# @param    $(outbase)  Output basename (full). Use this for list files and such.
    164150# @param    $(objsuff)  Object suffix.
    165 TOOL_VCC120AMD64_COMPILE_C_DEPEND =
    166 TOOL_VCC120AMD64_COMPILE_C_DEPORD =
    167 TOOL_VCC120AMD64_COMPILE_C_OUTPUT =
    168 TOOL_VCC120AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC120AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120AMD64_PDB, $(outbase)-obj,idb)
    169 ifdef TOOL_VCC120AMD64_KSUBMIT
    170  TOOL_VCC120AMD64_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
    171  define TOOL_VCC120AMD64_COMPILE_C_CMDS
    172         $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    173                 -- $(TOOL_VCC120AMD64_CC) -c\
    174                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     151TOOL_VCC141AMD64_COMPILE_C_DEPEND =
     152TOOL_VCC141AMD64_COMPILE_C_DEPORD =
     153TOOL_VCC141AMD64_COMPILE_C_OUTPUT =
     154TOOL_VCC141AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb)
     155ifdef TOOL_VCC141AMD64_KSUBMIT
     156 TOOL_VCC141AMD64_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed
     157 define TOOL_VCC141AMD64_COMPILE_C_CMDS
     158        $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     159                -- $(TOOL_VCC141AMD64_CC) -c\
     160                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    175161                -Fd$(outbase)-obj.pdb \
    176162                -Fo$(obj)\
     
    178164 endef
    179165else
    180  define TOOL_VCC120AMD64_COMPILE_C_CMDS
    181         $(QUIET)$(if-expr defined(PATH_TOOL_VCC120AMD64_BIN_DLL)\
    182                 ,$(REDIRECT) --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)' -- ,)$(TOOL_VCC120AMD64_CC) -c\
    183                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     166 define TOOL_VCC141AMD64_COMPILE_C_CMDS
     167        $(QUIET)$(TOOL_VCC141AMD64_CC) -c\
     168                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    184169                -Fd$(outbase)-obj.pdb \
    185170                -Fo$(obj)\
     
    187172        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    188173 endef
    189 endif # !TOOL_VCC120AMD64_KSUBMIT
     174endif # !TOOL_VCC141AMD64_KSUBMIT
    190175
    191176
     
    203188# @param    $(outbase)  Output basename (full). Use this for list files and such.
    204189# @param    $(objsuff)  Object suffix.
    205 TOOL_VCC120AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
    206 TOOL_VCC120AMD64_COMPILE_CXX_DEPORD =
    207 TOOL_VCC120AMD64_COMPILE_CXX_OUTPUT =
    208 TOOL_VCC120AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
    209         ,,$(call TOOL_VCC120AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120AMD64_PDB, $(outbase)-obj,idb))
    210 ifdef TOOL_VCC120AMD64_KSUBMIT
    211  TOOL_VCC120AMD64_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
    212  define TOOL_VCC120AMD64_COMPILE_CXX_CMDS
    213         $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
    214                 -- $(TOOL_VCC120AMD64_CXX) -c\
    215                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     190TOOL_VCC141AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
     191TOOL_VCC141AMD64_COMPILE_CXX_DEPORD =
     192TOOL_VCC141AMD64_COMPILE_CXX_OUTPUT =
     193TOOL_VCC141AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\
     194        ,,$(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb))
     195ifdef TOOL_VCC141AMD64_KSUBMIT
     196 TOOL_VCC141AMD64_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed
     197 define TOOL_VCC141AMD64_COMPILE_CXX_CMDS
     198        $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
     199                -- $(TOOL_VCC141AMD64_CXX) -c\
     200                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    216201                $(if-expr defined($(target)_PCH_HDR)\
    217202                ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\
     
    221206 endef
    222207else
    223  define TOOL_VCC120AMD64_COMPILE_CXX_CMDS
    224         $(QUIET)$(if-expr defined(PATH_TOOL_VCC120AMD64_BIN_DLL)\
    225                 ,$(REDIRECT) --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)' -- ,)$(TOOL_VCC120AMD64_CXX) -c\
    226                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     208 define TOOL_VCC141AMD64_COMPILE_CXX_CMDS
     209        $(QUIET)$(TOOL_VCC141AMD64_CXX) -c\
     210                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    227211                $(if-expr defined($(target)_PCH_HDR)\
    228212                ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\
     
    232216        $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj)
    233217 endef
    234 endif # !TOOL_VCC120AMD64_KSUBMIT
     218endif # !TOOL_VCC141AMD64_KSUBMIT
    235219
    236220
     
    241225# related _1_VCC_PCH_FILE and add -Yc.
    242226#
    243 TOOL_VCC120AMD64-PCH                         := Helper for creating precompiled header using CXX handling.
    244 TOOL_VCC120AMD64-PCH_EXTENDS                 := VCC120AMD64
    245 TOOL_VCC120AMD64-PCH_CXXOBJSUFF              := .obj
    246 TOOL_VCC120AMD64-PCH_CXXINCS                  = $(TOOL_VCC120AMD64_CXXINCS)
    247 TOOL_VCC120AMD64-PCH_CXXFLAGS                 = $(TOOL_VCC120AMD64_CXXFLAGS) -FS
    248 TOOL_VCC120AMD64-PCH_CXXFLAGS.debug           = $(TOOL_VCC120AMD64_CXXFLAGS.debug)
    249 TOOL_VCC120AMD64-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC120AMD64_CXXFLAGS.dbgopt)
    250 TOOL_VCC120AMD64-PCH_CXXFLAGS.release         = $(TOOL_VCC120AMD64_CXXFLAGS.release)
    251 TOOL_VCC120AMD64-PCH_CXXFLAGS.profile         = $(TOOL_VCC120AMD64_CXXFLAGS.profile)
    252 TOOL_VCC120AMD64-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
    253 TOOL_VCC120AMD64-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
    254 TOOL_VCC120AMD64-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    255 TOOL_VCC120AMD64-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
    256 ifdef TOOL_VCC120AMD64_KSUBMIT
    257  define TOOL_VCC120AMD64-PCH_COMPILE_CXX_CMDS
     227TOOL_VCC141AMD64-PCH                         := Helper for creating precompiled header using CXX handling.
     228TOOL_VCC141AMD64-PCH_EXTENDS                 := VCC141AMD64
     229TOOL_VCC141AMD64-PCH_CXXOBJSUFF              := .obj
     230TOOL_VCC141AMD64-PCH_CXXINCS                  = $(TOOL_VCC141AMD64_CXXINCS)
     231TOOL_VCC141AMD64-PCH_CXXFLAGS                 = $(TOOL_VCC141AMD64_CXXFLAGS) -FS
     232TOOL_VCC141AMD64-PCH_CXXFLAGS.debug           = $(TOOL_VCC141AMD64_CXXFLAGS.debug)
     233TOOL_VCC141AMD64-PCH_CXXFLAGS.dbgopt          = $(TOOL_VCC141AMD64_CXXFLAGS.dbgopt)
     234TOOL_VCC141AMD64-PCH_CXXFLAGS.release         = $(TOOL_VCC141AMD64_CXXFLAGS.release)
     235TOOL_VCC141AMD64-PCH_CXXFLAGS.profile         = $(TOOL_VCC141AMD64_CXXFLAGS.profile)
     236TOOL_VCC141AMD64-PCH_COMPILE_CXX_DEPEND       = $(NO_SUCH_VARIABLE)
     237TOOL_VCC141AMD64-PCH_COMPILE_CXX_DEPORD       = $(NO_SUCH_VARIABLE)
     238TOOL_VCC141AMD64-PCH_COMPILE_CXX_OUTPUT       = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
     239TOOL_VCC141AMD64-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)
     240ifdef TOOL_VCC141AMD64_KSUBMIT
     241 define TOOL_VCC141AMD64-PCH_COMPILE_CXX_CMDS
    258242        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    259         $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
    260                 -- $(TOOL_VCC120AMD64_CXX) -c -Yc\
    261                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     243        $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
     244                -- $(TOOL_VCC141AMD64_CXX) -c -Yc\
     245                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    262246               -Fp$($(target)_1_VCC_PCH_FILE) \
    263247                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     
    267251 endef
    268252else
    269  define TOOL_VCC120AMD64-PCH_COMPILE_CXX_CMDS
     253 define TOOL_VCC141AMD64-PCH_COMPILE_CXX_CMDS
    270254        $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
    271         $(QUIET)$(if-expr defined(PATH_TOOL_VCC120AMD64_BIN_DLL)\
    272                 ,$(REDIRECT) --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)' -- ,)$(TOOL_VCC120AMD64_CXX) -c -Yc\
    273                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     255        $(QUIET)$(TOOL_VCC141AMD64_CXX) -c -Yc\
     256                $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
    274257               -Fp$($(target)_1_VCC_PCH_FILE) \
    275258                -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \
     
    280263
    281264 endef
    282 endif # !TOOL_VCC120AMD64_KSUBMIT
     265endif # !TOOL_VCC141AMD64_KSUBMIT
    283266
    284267
     
    298281# @param    $(outbase)  Output basename (full). Use this for list files and such.
    299282# @param    $(objsuff)  Object suffix.
    300 TOOL_VCC120AMD64_COMPILE_RC_DEPEND =
    301 TOOL_VCC120AMD64_COMPILE_RC_DEPORD =
    302 TOOL_VCC120AMD64_COMPILE_RC_OUTPUT =
    303 ## @todo Fix kmk_redirect so we can use it for setting PATH without spawning a shell or two
    304 define TOOL_VCC120AMD64_COMPILE_RC_CMDS
    305         $(QUIET)$(if-expr defined(PATH_TOOL_VCC120AMD64_BIN_DLL)\
    306                 ,$(REDIRECT) --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)' -- ,)$(TOOL_VCC120AMD64_RC) \
    307                 $(flags) $(addprefix /i, $(subst /,\\,$(incs))) $(addprefix /d, $(defs))\
     283TOOL_VCC141AMD64_COMPILE_RC_DEPEND =
     284TOOL_VCC141AMD64_COMPILE_RC_DEPORD =
     285TOOL_VCC141AMD64_COMPILE_RC_OUTPUT =
     286define TOOL_VCC141AMD64_COMPILE_RC_CMDS
     287        $(QUIET)$(TOOL_VCC141AMD64_RC) \
     288                $(flags) $(qaddprefix sh,/i, $(subst /,\\,$(incs))) $(qaddprefix sh,/d, $(defs))\
    308289                /fo$(obj)\
    309290                $(subst /,\\,$(abspath $(source)))
     
    321302# @param    $(outbase)  Output basename (full). Use this for list files and such.
    322303#
    323 TOOL_VCC120AMD64_LINK_LIBRARY_DEPEND = $(othersrc)
    324 TOOL_VCC120AMD64_LINK_LIBRARY_DEPORD =
    325 TOOL_VCC120AMD64_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    326 TOOL_VCC120AMD64_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
    327 define TOOL_VCC120AMD64_LINK_LIBRARY_CMDS
     304TOOL_VCC141AMD64_LINK_LIBRARY_DEPEND = $(othersrc)
     305TOOL_VCC141AMD64_LINK_LIBRARY_DEPORD =
     306TOOL_VCC141AMD64_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     307TOOL_VCC141AMD64_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb
     308define TOOL_VCC141AMD64_LINK_LIBRARY_CMDS
    328309        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    329                 $(foreach arg,\
    330                         $(subst /,\\,$(objs) \
    331                         $(filter-out %.def,$(othersrc))) \
    332                         $(addprefix /DEF:,$(filter %.def,$(othersrc))) \
    333                         ,\"$(arg)\")
    334         $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_AR) $(flags) /OUT:$(out) @$(outbase).rsp
     310                $(qforeachfile u,arg, $(objs) $(filter-out %.def,$(othersrc)),$(quote-sh "$(subst /,\,$(arg))")) \
     311                $(qforeachfile u,arg, $(filter %.def,$(othersrc)),$(quote-sh "/DEF:$(subst /,\,$(arg))"))
     312        $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_AR) $(flags) /OUT:$(out) @$(outbase).rsp
    335313endef
    336314
     
    350328# @param    $(outbase)      Output basename (full). Use this for list files and such.
    351329#
    352 TOOL_VCC120AMD64_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    353 TOOL_VCC120AMD64_LINK_PROGRAM_DEPORD =
    354 TOOL_VCC120AMD64_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    355 TOOL_VCC120AMD64_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    356 TOOL_VCC120AMD64_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
    357 TOOL_VCC120AMD64_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    358 define TOOL_VCC120AMD64_LINK_PROGRAM_CMDS
     330TOOL_VCC141AMD64_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     331TOOL_VCC141AMD64_LINK_PROGRAM_DEPORD =
     332TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     333TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     334TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb
     335TOOL_VCC141AMD64_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     336define TOOL_VCC141AMD64_LINK_PROGRAM_CMDS
    359337        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    360                 $(foreach arg,\
    361                     $(subst /,\\,$(objs)) \
    362                     $(subst /,\\,$(libs)) \
    363                         ,\"$(arg)\")
    364         $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_LD) $(flags) \
     338                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
     339        $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \
    365340                /OUT:$(out) \
    366341                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    368343                $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \
    369344                $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \
    370                 $(foreach p,$(libpath), /LIBPATH:$(p)) \
     345                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    371346                @$(outbase).rsp
    372 ifndef TOOL_VCC120AMD64_NO_AUTO_MANIFEST
     347ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST
    373348        $(QUIET)$(TEST) -f $(out).manifest -- \
    374                 $(TOOL_VCC120AMD64_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
     349                $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))
    375350endif
    376351endef
     
    391366#
    392367# @param    $(outbase)  Output basename (full). Use this for list files and such.
    393 TOOL_VCC120AMD64_LINK_DLL_DEPEND = $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    394 TOOL_VCC120AMD64_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
    395 TOOL_VCC120AMD64_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
    396 TOOL_VCC120AMD64_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
    397 TOOL_VCC120AMD64_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
    398 TOOL_VCC120AMD64_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
    399 TOOL_VCC120AMD64_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    400 define TOOL_VCC120AMD64_LINK_DLL_CMDS
     368TOOL_VCC141AMD64_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     369TOOL_VCC141AMD64_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))
     370TOOL_VCC141AMD64_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp
     371TOOL_VCC141AMD64_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp
     372TOOL_VCC141AMD64_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp
     373TOOL_VCC141AMD64_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb
     374TOOL_VCC141AMD64_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     375define TOOL_VCC141AMD64_LINK_DLL_CMDS
    401376        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    402                 $(foreach arg,\
    403                     $(subst /,\\,$(objs)) \
    404                     $(subst /,\\,$(libs)) \
    405                         ,\"$(arg)\")
    406         $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_LD) $(flags) \
     377                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
     378        $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \
    407379                /OUT:$(out) \
    408380                /IMPLIB:$(outbase).lib \
     
    412384                $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \
    413385                $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \
    414                 $(foreach p,$(libpath), /LIBPATH:$(p)) \
     386                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    415387                @$(outbase).rsp
    416 ifndef TOOL_VCC120AMD64_NO_AUTO_MANIFEST
     388ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST
    417389        $(QUIET)$(TEST) -f $(out).manifest -- \
    418                 $(TOOL_VCC120AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     390                $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    419391endif
    420392        $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib
     
    438410#
    439411# @param    $(outbase)  Output basename (full). Use this for list files and such.
    440 TOOL_VCC120AMD64_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    441 TOOL_VCC120AMD64_LINK_SYSMOD_DEPORD =
    442 TOOL_VCC120AMD64_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
    443 TOOL_VCC120AMD64_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
    444 TOOL_VCC120AMD64_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
    445 TOOL_VCC120AMD64_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
    446 define TOOL_VCC120AMD64_LINK_SYSMOD_CMDS
     412TOOL_VCC141AMD64_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     413TOOL_VCC141AMD64_LINK_SYSMOD_DEPORD =
     414TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest
     415TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp
     416TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb
     417TOOL_VCC141AMD64_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb
     418define TOOL_VCC141AMD64_LINK_SYSMOD_CMDS
    447419        $(QUIET)$(APPEND) -tn $(outbase).rsp \
    448                 $(foreach arg,\
    449                     $(subst /,\\,$(objs)) \
    450                     $(subst /,\\,$(libs)) \
    451                         ,\"$(arg)\")
    452         $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_LD) $(flags) \
     420                $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))"))
     421        $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \
    453422                /OUT:$(out) \
    454423                /MAPINFO:EXPORTS /INCREMENTAL:NO \
     
    456425                $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \
    457426                $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \
    458                 $(foreach p,$(libpath), /LIBPATH:$(p)) \
     427                $(qaddprefix sh,/LIBPATH:,$(libpath)) \
    459428                @$(outbase).rsp
    460 ifndef TOOL_VCC120AMD64_NO_AUTO_MANIFEST
     429ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST
    461430        $(QUIET)$(TEST) -f $(out).manifest -- \
    462                 $(TOOL_VCC120AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
     431                $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'
    463432endif
    464433endef
  • trunk/kBuild/win-common.kmk

    r3320 r3323  
    5151WINCMN_PROGRAM_FILES_LIST := $(WINCMN_PROGRAM_FILES_LIST_EXTRA) $(WINCMN_PROGRAM_FILES) $(WINCMN_PROGRAM_FILES_ALT)
    5252
     53## @def WINCMN_MAP_ARCH.*
     54## Maps kBuild architecture names to one used by newer windows tools and kits.
     55## @{
     56WINCMN_MAP_ARCH.amd64 := x64
     57WINCMN_MAP_ARCH.arm32 := arm
     58WINCMN_MAP_ARCH.arm64 := arm64
     59WINCMN_MAP_ARCH.ia64  := ia64
     60WINCMN_MAP_ARCH.x86   := x86
     61## @}
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