source: trunk/kBuild/sdks/WINSDK10.kmk

Last change on this file was 3629, checked in by bird, 9 months ago

sdks/WINSDK10.kmk: Added PATH_SDK_WINSDK10_BIN.x86 for finding x86-specific tools (like Inf2Cat.exe).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 10.7 KB
Line 
1# $Id: WINSDK10.kmk 3629 2024-10-25 09:46:04Z bird $
2## @file
3# kBuild SDK - The Microsoft Windows SDK v10.
4#
5
6#
7# Copyright (c) 2006-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
8#
9# This file is part of kBuild.
10#
11# kBuild is free software; you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
13# the Free Software Foundation; either version 2 of the License, or
14# (at your option) any later version.
15#
16# kBuild is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19# GNU General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
22# along with kBuild; if not, write to the Free Software
23# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24#
25#
26# As a special exception you are granted permission to include this file, via
27# the kmk include directive, as you wish without this in itself causing the
28# resulting makefile, program or whatever to be covered by the GPL license.
29# This exception does not however invalidate any other reasons why the makefile,
30# program, whatever should not be covered the GPL.
31#
32#
33
34SDK_WINSDK10 := The Windows Platform SDK v10, targeting (KBUILD_TARGET).
35
36ifndef INCLUDED_WIN_COMMON_KMK
37 include $(KBUILD_PATH)/win-common.kmk
38endif
39
40#
41# SDK Specific Properties
42#
43
44## @def PATH_SDK_WINSDK10
45## The base path of the Windows 10 SDK.
46
47## @def SDK_WINSDK10_MAX_VERSION
48## The maximum SDK version to use.
49ifndef SDK_WINSDK10_MAX_VERSION
50 SDK_WINSDK10_MAX_VERSION := 99.9.99999.9
51endif
52
53## @def SDK_WINSDK10_VERSION
54## The SDK version for subdirectories.
55if defined(SDK_WINSDK10_VERSION) && "$(SDK_WINSDK10_VERSION)" > "$(SDK_WINSDK10_MAX_VERSION)"
56 $(warning Dropping SDK_WINSDK10_VERSION=$(SDK_WINSDK10_VERSION) is it is later than SDK_WINSDK10_MAX_VERSION=$(SDK_WINSDK10_MAX_VERSION))
57 SDK_WINSDK10_VERSION :=
58endif
59
60ifndef PATH_SDK_WINSDK10
61 ifndef SDK_WINSDK10_VERSION
62 PATH_SDK_WINSDK10 := $(firstfile $(foreachfile candidate, $(foreachfile toolsdir, \
63 $(KBUILD_DEVTOOLS)/win $(KBUILD_DEVTOOLS_BLD) $(KBUILD_DEVTOOLS_TRG) $(KBUILD_DEVTOOLS)/win.x86 $(KBUILD_DEVTOOLS)/win.amd64 \
64 ,$(rsortfiles $(qwildcard ,$(toolsdir)/sdk/v10*/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/10.0.*))) \
65 ,$(if-expr "$(qnotdir ,$(candidate))" vle "$(SDK_WINSDK10_MAX_VERSION)",$(candidate),)))
66 ifeq ($(PATH_SDK_WINSDK10),)
67 PATH_SDK_WINSDK10 := $(firstfile $(foreachfile candidate, $(foreachfile progfilesdir,$(WINCMN_PROGRAM_FILES_LIST)\
68 ,$(rsortfiles $(qwildcard ,$(progfilesdir)/Windows\ Kits/10/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/10.0.*)) ) \
69 ,$(if-expr "$(qnotdir ,$(candidate))" vle "$(SDK_WINSDK10_MAX_VERSION)",$(candidate),)))
70 ifeq ($(PATH_SDK_WINSDK10),)
71 $(warning kBuild: PATH_SDK_WINSDK10 could not be determined!)
72 PATH_SDK_WINSDK10 := $(KBUILD_DEVTOOLS)/win/sdk/v10-not-found/Include/10.0.10240.0
73 endif
74 endif
75 SDK_WINSDK10_VERSION := $(qnotdir ,$(PATH_SDK_WINSDK10))
76 else
77 PATH_SDK_WINSDK10 := $(firstfile $(foreachfile toolsdir, \
78 $(KBUILD_DEVTOOLS_BLD) $(KBUILD_DEVTOOLS_TRG) $(KBUILD_DEVTOOLS)/win.x86 $(KBUILD_DEVTOOLS)/win.amd64 \
79 ,$(rsortfiles $(qwildcard ,$(toolsdir)/sdk/v10*/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/$(SDK_WINSDK10_VERSION)))))
80 ifeq ($(PATH_SDK_WINSDK10),)
81 PATH_SDK_WINSDK10 := $(firstfile $(foreachfile progfilesdir,$(WINCMN_PROGRAM_FILES_LIST)\
82 ,$(rsortfiles $(qwildcard ,$(progfilesdir)/Windows\ Kits/10/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/$(SDK_WINSDK10_VERSION))) ))
83 ifeq ($(PATH_SDK_WINSDK10),)
84 $(warning kBuild: PATH_SDK_WINSDK10 could not be determined!)
85 PATH_SDK_WINSDK10 := $(KBUILD_DEVTOOLS)/win/sdk/v10-not-found/Include/$(SDK_WINSDK10_VERSION)
86 endif
87 endif
88 SDK_WINSDK10_VERSION := $(qnotdir ,$(PATH_SDK_WINSDK10))
89 endif
90 PATH_SDK_WINSDK10 := $(substr $(qdir ,$(PATH_SDK_WINSDK10)),1,-9)
91else
92 PATH_SDK_WINSDK10 := $(PATH_SDK_WINSDK10)
93 ifndef SDK_WINSDK10_VERSION
94 SDK_WINSDK10_VERSION := $(qnotdir ,$(firstfile $(rsortfiles $(qwildcard ,$(PATH_SDK_WINSDK10)/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/10.0.*))))
95 ifeq ($(SDK_WINSDK10_VERSION),)
96 $(warning kBuild: SDK_WINSDK10_VERSION could not be determined for PATH_SDK_WINSDK10=$(PATH_SDK_WINSDK10))
97 SDK_WINSDK10_VERSION := 10.0.10240.0
98 endif
99 endif
100endif
101
102# Non-versioned base directory paths:
103ifndef PATH_SDK_WINSDK10_BASE_INC
104PATH_SDK_WINSDK10_BASE_INC := $(firstfile $(qwildcard ,$(PATH_SDK_WINSDK10)/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]) $(PATH_SDK_WINSDK10)/Include)
105endif
106ifndef PATH_SDK_WINSDK10_BASE_LIB
107PATH_SDK_WINSDK10_BASE_LIB := $(firstfile $(qwildcard ,$(PATH_SDK_WINSDK10)/[Ll][Ii][Bb]) $(PATH_SDK_WINSDK10)/lib)
108endif
109ifndef PATH_SDK_WINSDK10_BASE_BIN
110PATH_SDK_WINSDK10_BASE_BIN := $(firstfile $(qwildcard ,$(PATH_SDK_WINSDK10)/[Bb][Ii][Nn]) $(PATH_SDK_WINSDK10)/bin)
111endif
112
113# Universal CRT (UCRT).
114ifndef PATH_SDK_WINSDK10_UCRT_INC
115PATH_SDK_WINSDK10_UCRT_INC := $(PATH_SDK_WINSDK10_BASE_INC)/$(SDK_WINSDK10_VERSION)/ucrt
116endif
117ifndef PATH_SDK_WINSDK10_UCRT_LIB.amd64
118PATH_SDK_WINSDK10_UCRT_LIB.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/ucrt/x64
119endif
120ifndef PATH_SDK_WINSDK10_UCRT_LIB.arm32
121PATH_SDK_WINSDK10_UCRT_LIB.arm32 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/ucrt/arm
122endif
123ifndef PATH_SDK_WINSDK10_UCRT_LIB.arm64
124PATH_SDK_WINSDK10_UCRT_LIB.arm64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/ucrt/arm64
125endif
126ifndef PATH_SDK_WINSDK10_UCRT_LIB.x86
127PATH_SDK_WINSDK10_UCRT_LIB.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/ucrt/x86
128endif
129PATH_SDK_WINSDK10_UCRT_LIB = $(PATH_SDK_WINSDK10_UCRT_LIB.$(KBUILD_TARGET_ARCH))
130SDK_WINSDK10_UCRT_IMPLIB_NAME := ucrt.lib
131SDK_WINSDK10_UCRT_IMPLIB_DBG_NAME := ucrtd.lib
132SDK_WINSDK10_UCRT_STATIC_NAME := libucrt.lib
133SDK_WINSDK10_UCRT_STATIC_DBG_NAME := libucrtd.lib
134
135# Shared API headers
136ifndef PATH_SDK_WINSDK10_SHARED_INC
137PATH_SDK_WINSDK10_SHARED_INC := $(PATH_SDK_WINSDK10_BASE_INC)/$(SDK_WINSDK10_VERSION)/shared
138endif
139
140# User-mode API (MS WIN SDK)
141ifndef PATH_SDK_WINSDK10_UM_INC
142PATH_SDK_WINSDK10_UM_INC := $(PATH_SDK_WINSDK10_BASE_INC)/$(SDK_WINSDK10_VERSION)/um
143endif
144ifndef PATH_SDK_WINSDK10_UM_LIB.amd64
145PATH_SDK_WINSDK10_UM_LIB.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/um/x64
146endif
147ifndef PATH_SDK_WINSDK10_UM_LIB.arm32
148PATH_SDK_WINSDK10_UM_LIB.arm32 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/um/arm
149endif
150ifndef PATH_SDK_WINSDK10_UM_LIB.arm64
151PATH_SDK_WINSDK10_UM_LIB.arm64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/um/arm64
152endif
153ifndef PATH_SDK_WINSDK10_UM_LIB.x86
154PATH_SDK_WINSDK10_UM_LIB.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/um/x86
155endif
156PATH_SDK_WINSDK10_UM_LIB = $(PATH_SDK_WINSDK10_UM_LIB.$(KBUILD_TARGET_ARCH))
157ifndef SDK_WINSDK10_UM_LIB_NAMES
158SDK_WINSDK10_UM_LIB_NAMES := \
159 Kernel32.Lib \
160 User32.Lib \
161 Gdi32.Lib \
162 AdvAPI32.Lib \
163 shell32.lib \
164 ShLwApi.Lib \
165 SetupAPI.Lib \
166 Uuid.Lib \
167 Version.Lib \
168 WS2_32.Lib \
169 \
170 Ole32.Lib \
171 OleAut32.Lib \
172 OleDlg.Lib \
173 RpcRT4.Lib \
174 DbgHelp.Lib \
175 \
176 ImageHlp.Lib \
177 IPHlpApi.Lib \
178 ComCtl32.Lib \
179 ComDlg32.Lib \
180 WinSpool.Lib \
181 WinMM.Lib
182endif
183
184# Kernel-mode API headers (WDK).
185ifndef PATH_SDK_WINSDK10_KM_INC
186PATH_SDK_WINSDK10_KM_INC := $(PATH_SDK_WINSDK10_BASE_INC)/$(SDK_WINSDK10_VERSION)/km
187endif
188
189# Kernel-mode API libraries (WDK).
190ifndef PATH_SDK_WINSDK10_KM_LIB.amd64
191PATH_SDK_WINSDK10_KM_LIB.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/km/x64
192endif
193ifndef PATH_SDK_WINSDK10_KM_LIB.arm32
194PATH_SDK_WINSDK10_KM_LIB.arm32 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/km/arm
195endif
196ifndef PATH_SDK_WINSDK10_KM_LIB.arm64
197PATH_SDK_WINSDK10_KM_LIB.arm64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/km/arm64
198endif
199ifndef PATH_SDK_WINSDK10_KM_LIB.x86
200PATH_SDK_WINSDK10_KM_LIB.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/km/x86
201endif
202PATH_SDK_WINSDK10_KM_LIB = $(PATH_SDK_WINSDK10_KM_LIB.$(KBUILD_TARGET_ARCH))
203
204# Kernel-mode API libraries for Windows 7 (WDK).
205ifndef PATH_SDK_WINSDK10_KM_LIB_W7.amd64
206PATH_SDK_WINSDK10_KM_LIB_W7.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/win7/km/x64
207endif
208ifndef PATH_SDK_WINSDK10_KM_LIB_W7.x86
209PATH_SDK_WINSDK10_KM_LIB_W7.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/win7/km/x86
210endif
211PATH_SDK_WINSDK10_KM_LIB_W7 = $(PATH_SDK_WINSDK10_KM_LIB_W7.$(KBUILD_TARGET_ARCH))
212
213# Kernel-mode API libraries for Windows 8 (WDK).
214ifndef PATH_SDK_WINSDK10_KM_LIB_W8.amd64
215PATH_SDK_WINSDK10_KM_LIB_W8.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/win8/km/x64
216endif
217ifndef PATH_SDK_WINSDK10_KM_LIB_W8.arm32
218PATH_SDK_WINSDK10_KM_LIB_W8.arm32 := $(PATH_SDK_WINSDK10_BASE_LIB)/win8/km/arm
219endif
220ifndef PATH_SDK_WINSDK10_KM_LIB_W8.x86
221PATH_SDK_WINSDK10_KM_LIB_W8.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/win8/km/x86
222endif
223PATH_SDK_WINSDK10_KM_LIB_W8 = $(PATH_SDK_WINSDK10_KM_LIB_W8.$(KBUILD_TARGET_ARCH))
224
225# Kernel-mode API libraries for Windows 8.1 (WDK).
226ifndef PATH_SDK_WINSDK10_KM_LIB_W81.amd64
227PATH_SDK_WINSDK10_KM_LIB_W81.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/winv6.3/km/x64
228endif
229ifndef PATH_SDK_WINSDK10_KM_LIB_W81.arm32
230PATH_SDK_WINSDK10_KM_LIB_W81.arm32 := $(PATH_SDK_WINSDK10_BASE_LIB)/winv6.3/km/arm
231endif
232ifndef PATH_SDK_WINSDK10_KM_LIB_W81.x86
233PATH_SDK_WINSDK10_KM_LIB_W81.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/winv6.3/km/x86
234endif
235PATH_SDK_WINSDK10_KM_LIB_W81 = $(PATH_SDK_WINSDK10_KM_LIB_W81.$(KBUILD_TARGET_ARCH))
236
237# Binary directory for host.
238ifndef PATH_SDK_WINSDK10_BIN
239 ifeq ($(KBUILD_HOST_ARCH),amd64)
240PATH_SDK_WINSDK10_BIN := $(PATH_SDK_WINSDK10_BASE_BIN)/$(SDK_WINSDK10_VERSION)/x64
241 else ifeq ($(KBUILD_HOST_ARCH),arm)
242PATH_SDK_WINSDK10_BIN := $(PATH_SDK_WINSDK10_BASE_BIN)/$(SDK_WINSDK10_VERSION)/arm
243 else
244PATH_SDK_WINSDK10_BIN := $(PATH_SDK_WINSDK10_BASE_BIN)/$(SDK_WINSDK10_VERSION)/$(KBUILD_HOST_ARCH)
245 endif
246endif
247
248# The x86 host directory (contains inf2cat.exe and other stuff missing in the others).
249PATH_SDK_WINSDK10_BIN.x86 := $(PATH_SDK_WINSDK10_BASE_BIN)/$(SDK_WINSDK10_VERSION)/x86
250
251#
252# Properties used by kBuild.
253#
254SDK_WINSDK10_INCS ?= \
255 $(PATH_SDK_WINSDK10_UM_INC) \
256 $(PATH_SDK_WINSDK10_SHARED_INC)
257SDK_WINSDK10_LIBPATH.amd64 ?= $(PATH_SDK_WINSDK10_UM_LIB.amd64)
258SDK_WINSDK10_LIBPATH.arm32 ?= $(PATH_SDK_WINSDK10_UM_LIB.arm32)
259SDK_WINSDK10_LIBPATH.arm64 ?= $(PATH_SDK_WINSDK10_UM_LIB.arm64)
260SDK_WINSDK10_LIBPATH.x86 ?= $(PATH_SDK_WINSDK10_UM_LIB.x86)
261ifndef SDK_WINSDK10_LIBS.amd64
262SDK_WINSDK10_LIBS.amd64 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.amd64)/,$(SDK_WINSDK10_UM_LIB_NAMES))
263endif
264ifndef SDK_WINSDK10_LIBS.arm32
265SDK_WINSDK10_LIBS.arm32 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.arm32)/,$(SDK_WINSDK10_UM_LIB_NAMES))
266endif
267ifndef SDK_WINSDK10_LIBS.arm64
268SDK_WINSDK10_LIBS.arm64 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.arm64)/,$(SDK_WINSDK10_UM_LIB_NAMES))
269endif
270ifndef SDK_WINSDK10_LIBS.x86
271SDK_WINSDK10_LIBS.x86 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.x86)/,$(SDK_WINSDK10_UM_LIB_NAMES))
272endif
273
Note: See TracBrowser for help on using the repository browser.