summaryrefslogtreecommitdiffstats
path: root/kBuild/sdks
diff options
context:
space:
mode:
Diffstat (limited to 'kBuild/sdks')
-rw-r--r--kBuild/sdks/DXSDK.kmk67
-rw-r--r--kBuild/sdks/DXSDKAMD64.kmk61
-rw-r--r--kBuild/sdks/DXSDKX86.kmk62
-rw-r--r--kBuild/sdks/LIBSDL.kmk168
-rw-r--r--kBuild/sdks/LIBSDL2.kmk154
-rw-r--r--kBuild/sdks/MACOSX1010.kmk62
-rw-r--r--kBuild/sdks/MACOSX1013.kmk62
-rw-r--r--kBuild/sdks/MACOSX1013INCS.kmk49
-rw-r--r--kBuild/sdks/MACOSX1014.kmk62
-rw-r--r--kBuild/sdks/MACOSX1014INCS.kmk49
-rw-r--r--kBuild/sdks/MACOSX1015.kmk62
-rw-r--r--kBuild/sdks/MACOSX1015INCS.kmk49
-rw-r--r--kBuild/sdks/MACOSX104.kmk52
-rw-r--r--kBuild/sdks/MACOSX104INCS.kmk50
-rw-r--r--kBuild/sdks/MACOSX105.kmk52
-rw-r--r--kBuild/sdks/MACOSX105INCS.kmk50
-rw-r--r--kBuild/sdks/MACOSX110.kmk62
-rw-r--r--kBuild/sdks/MACOSX110INCS.kmk49
-rw-r--r--kBuild/sdks/NT4DDK.kmk59
-rw-r--r--kBuild/sdks/OS2DDKBASE32.kmk59
-rw-r--r--kBuild/sdks/ReorderCompilerIncs.kmk63
-rw-r--r--kBuild/sdks/W2K3DDK.kmk81
-rw-r--r--kBuild/sdks/W2K3DDKAMD64.kmk71
-rw-r--r--kBuild/sdks/W2K3DDKX86.kmk74
-rw-r--r--kBuild/sdks/W32API.kmk58
-rw-r--r--kBuild/sdks/WIN32SDK.kmk93
-rw-r--r--kBuild/sdks/WIN32SDK2002.kmk90
-rw-r--r--kBuild/sdks/WIN64SDK.kmk99
-rw-r--r--kBuild/sdks/WINDDK.kmk133
-rw-r--r--kBuild/sdks/WINDDK71.kmk107
-rw-r--r--kBuild/sdks/WINDDK71WLH.kmk47
-rw-r--r--kBuild/sdks/WINDDK71WNET.kmk47
-rw-r--r--kBuild/sdks/WINDDK71WXP.kmk43
-rw-r--r--kBuild/sdks/WINDDK80.kmk98
-rw-r--r--kBuild/sdks/WINDDK80W8.kmk46
-rw-r--r--kBuild/sdks/WINDDKW2K.kmk43
-rw-r--r--kBuild/sdks/WINDDKWLH.kmk47
-rw-r--r--kBuild/sdks/WINDDKWNET.kmk47
-rw-r--r--kBuild/sdks/WINDDKWXP.kmk43
-rw-r--r--kBuild/sdks/WINPSDK.kmk161
-rw-r--r--kBuild/sdks/WINPSDK71.kmk161
-rw-r--r--kBuild/sdks/WINPSDK71INCS.kmk90
-rw-r--r--kBuild/sdks/WINPSDKINCS.kmk93
-rw-r--r--kBuild/sdks/WINSDK10-KM-W7.kmk51
-rw-r--r--kBuild/sdks/WINSDK10-KM-W8.kmk51
-rw-r--r--kBuild/sdks/WINSDK10-KM-W81.kmk51
-rw-r--r--kBuild/sdks/WINSDK10-KM.kmk59
-rw-r--r--kBuild/sdks/WINSDK10-UCRT-INCS.kmk40
-rw-r--r--kBuild/sdks/WINSDK10-UCRT-STATIC.kmk56
-rw-r--r--kBuild/sdks/WINSDK10-UCRT.kmk56
-rw-r--r--kBuild/sdks/WINSDK10-UM-INCS.kmk42
-rw-r--r--kBuild/sdks/WINSDK10-UM.kmk69
-rw-r--r--kBuild/sdks/WINSDK10.kmk256
53 files changed, 3906 insertions, 0 deletions
diff --git a/kBuild/sdks/DXSDK.kmk b/kBuild/sdks/DXSDK.kmk
new file mode 100644
index 0000000..581f265
--- /dev/null
+++ b/kBuild/sdks/DXSDK.kmk
@@ -0,0 +1,67 @@
+# $Id: DXSDK.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Microsoft Direct X SDK, targeting $(KBUILD_TARGET).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_DXSDK := The Microsoft Direct X SDK, targeting $(KBUILD_TARGET)
+
+# SDK Specific Properties
+ifndef PATH_SDK_DXSDK
+ ## @todo which order is logical here, BLD and then TRG or the other way?
+ PATH_SDK_DXSDK := $(sort $(wildcard $(KBUILD_DEVTOOLS_BLD)/dxsdk/2*))
+ ifeq ($(PATH_SDK_DXSDK),)
+ PATH_SDK_DXSDK := $(sort $(wildcard $(KBUILD_DEVTOOLS_TRG)/dxsdk/2*))
+ endif
+ ifeq ($(PATH_SDK_DXSDK),)
+ PATH_SDK_DXSDK := $(sort $(wildcard $(KBUILD_DEVTOOLS)/win.x86/dxsdk/2*))
+ endif
+ ifeq ($(PATH_SDK_DXSDK),)
+ PATH_SDK_DXSDK := $(sort $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/dxsdk/2*))
+ endif
+ ifneq ($(PATH_SDK_DXSDK),)
+ PATH_SDK_DXSDK := $(call lastword,$(PATH_SDK_DXSDK))
+ else
+ $(warning kBuild: PATH_SDK_DXSDK couldn't be determined!)
+ PATH_SDK_DXSDK := $(KBUILD_DEVTOOLS_TRG)/dxsdk/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_DXSDK := $(PATH_SDK_DXSDK)
+endif
+PATH_SDK_DXSDK_INC ?= $(PATH_SDK_DXSDK)/Include
+PATH_SDK_DXSDK_LIB.x86 ?= $(PATH_SDK_DXSDK)/Lib/x86
+PATH_SDK_DXSDK_LIB.amd64 ?= $(PATH_SDK_DXSDK)/Lib/x64
+PATH_SDK_DXSDK_LIB ?= $(PATH_SDK_DXSDK_LIB.$(KBUILD_TARGET_ARCH))
+
+# General Properties used by kBuild
+SDK_DXSDK_INCS ?= $(PATH_SDK_DXSDK_INC)
+SDK_DXSDK_LIBPATH ?= $(PATH_SDK_DXSDK_LIB)
+
diff --git a/kBuild/sdks/DXSDKAMD64.kmk b/kBuild/sdks/DXSDKAMD64.kmk
new file mode 100644
index 0000000..1bc213a
--- /dev/null
+++ b/kBuild/sdks/DXSDKAMD64.kmk
@@ -0,0 +1,61 @@
+# $Id: DXSDKAMD64.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Microsoft Direct X SDK, targeting AMD64.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_DXSDKAMD64 := The Microsoft Direct X SDK, targeting AMD64.
+
+# SDK Specific Properties
+ifndef PATH_SDK_DXSDKAMD64
+ PATH_SDK_DXSDKAMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/dxsdk/2*)
+ ifeq ($(PATH_SDK_DXSDKAMD64),)
+ PATH_SDK_DXSDKAMD64 := $(PATH_SDK_DXSDK)
+ endif
+ ifeq ($(PATH_SDK_DXSDKAMD64),)
+ PATH_SDK_DXSDKAMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/dxsdk/2*)
+ endif
+ ifneq ($(PATH_SDK_DXSDKAMD64),)
+ PATH_SDK_DXSDKAMD64 := $(lastword $(sort $(PATH_SDK_DXSDKAMD64)))
+ else
+ $(warning kBuild: PATH_SDK_DXSDKAMD64 couldn't be determined!)
+ PATH_SDK_DXSDKAMD64 := $(KBUILD_DEVTOOLS)/win.amd64/dxsdk/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_DXSDKAMD64 := $(PATH_SDK_DXSDKAMD64)
+endif
+PATH_SDK_DXSDKAMD64_INC ?= $(PATH_SDK_DXSDKAMD64)/Include
+PATH_SDK_DXSDKAMD64_LIB ?= $(PATH_SDK_DXSDKAMD64)/Lib/x64
+
+# General Properties used by kBuild
+SDK_DXSDKAMD64_INCS ?= $(PATH_SDK_DXSDKAMD64_INC)
+SDK_DXSDKAMD64_LIBPATH ?= $(PATH_SDK_DXSDKAMD64_LIB)
+
diff --git a/kBuild/sdks/DXSDKX86.kmk b/kBuild/sdks/DXSDKX86.kmk
new file mode 100644
index 0000000..d0fa073
--- /dev/null
+++ b/kBuild/sdks/DXSDKX86.kmk
@@ -0,0 +1,62 @@
+# $Id: DXSDKX86.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Microsoft Direct X SDK, targeting X86.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+
+SDK_DXSDKX86 := The Microsoft Direct X SDK, targeting X86.
+
+# SDK Specific Properties
+ifndef PATH_SDK_DXSDKX86
+ PATH_SDK_DXSDKX86 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/dxsdk/2*)
+ ifeq ($(PATH_SDK_DXSDKX86),)
+ PATH_SDK_DXSDKX86 := $(PATH_SDK_DXSDK)
+ endif
+ ifeq ($(PATH_SDK_DXSDKX86),)
+ PATH_SDK_DXSDKX86 := $(wildcard $(KBUILD_DEVTOOLS)/amd64.win/dxsdk/2*)
+ endif
+ ifneq ($(PATH_SDK_DXSDKX86),)
+ PATH_SDK_DXSDKX86 := $(lastword $(sort $(PATH_SDK_DXSDKX86)))
+ else
+ $(warning kBuild: PATH_SDK_DXSDKX86 couldn't be determined!)
+ PATH_SDK_DXSDKX86 := $(KBUILD_DEVTOOLS)/win.x86/dxsdk/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_DXSDKX86 := $(PATH_SDK_DXSDKX86)
+endif
+PATH_SDK_DXSDKX86_INC ?= $(PATH_SDK_DXSDKX86)/Include
+PATH_SDK_DXSDKX86_LIB ?= $(PATH_SDK_DXSDKX86)/Lib/x86
+
+# General Properties used by kBuild
+SDK_DXSDKX86_INCS ?= $(PATH_SDK_DXSDKX86_INC)
+SDK_DXSDKX86_LIBPATH ?= $(PATH_SDK_DXSDKX86_LIB)
+
diff --git a/kBuild/sdks/LIBSDL.kmk b/kBuild/sdks/LIBSDL.kmk
new file mode 100644
index 0000000..2c82807
--- /dev/null
+++ b/kBuild/sdks/LIBSDL.kmk
@@ -0,0 +1,168 @@
+# $Id: LIBSDL.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - Simple DirectMedia Layer, targeting $(KBUILD_TARGET).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_LIBSDL := Simple DirectMedia Layer, targeting $(KBUILD_TARGET).
+
+# SDK Specific Properties
+_SDK_LIBSDK_IS_FRAMEWORK := no
+ifndef PATH_SDK_LIBSDL
+ PATH_SDK_LIBSDL := $(wildcard $(KBUILD_DEVTOOLS_TRG)/libsdl/v*)
+ ifeq ($(PATH_SDK_LIBSDL),)
+ PATH_SDK_LIBSDL := $(wildcard $(KBUILD_DEVTOOLS_BLD)/libsdl/v*)
+ endif
+ ifneq ($(PATH_SDK_LIBSDL),)
+ PATH_SDK_LIBSDL := $(lastword $(sort $(PATH_SDK_LIBSDL)))
+ else
+
+ # Darwin might have a framework for it.
+ ifeq ($(KBUILD_TARGET),darwin)
+ PATH_SDK_LIBSDL := $(firstword $(wildcard \
+ /System/Library/Frameworks/SDL.framework/SDL \
+ /Library/Frameworks/SDL.framework/SDL \
+ ) )
+ ifneq ($(PATH_SDK_LIBSDL),)
+ PATH_SDK_LIBSDL := $(patsubst %/,%,$(dir $(PATH_SDK_LIBSDL)))
+ _SDK_LIBSDK_IS_FRAMEWORK := yes
+ endif
+ endif
+
+ ifeq ($(PATH_SDK_LIBSDL),)
+ PATH_SDK_LIBSDL := $(firstword $(foreach root,$(KBUILD_LIB_SEARCH_ROOTS) \
+ ,$(if $(wildcard $(addsuffix libSDL.*,$(addprefix $(root),$(KBUILD_LIB_SEARCH_SUBS)))),$(root),) ))
+ ifeq ($(PATH_SDK_LIBSDL),/)
+ PATH_SDK_LIBSDL := /.
+ else ifneq ($(PATH_SDK_LIBSDL),)
+ PATH_SDK_LIBSDL := $(patsubst %/,%,$(PATH_SDK_LIBSDL))
+ else
+ $(warning kBuild: PATH_SDK_LIBSDL couldn't be determined!)
+ PATH_SDK_LIBSDL := $(KBUILD_DEVTOOLS_TRG)/libsdl/not/found
+ endif
+ endif
+ endif
+else
+ PATH_SDK_LIBSDL := $(PATH_SDK_LIBSDL)
+ ifeq ($(KBUILD_TARGET),darwin)
+ # Check if it's the framework or not.
+ _SDK_LIBSDK_IS_FRAMEWORK := $(if $(wildcard $(PATH_SDK_LIBSDL)/Headers/SDL.h),yes)
+ endif
+endif
+
+#
+# The way libsdl is distributed on the different platforms
+# varies quite a bit, thus this kludge.
+#
+ifeq ($(KBUILD_TARGET),os2)
+ LIB_SDK_LIBSDL_SDLMAIN ?=
+ DLL_SDK_LIBSDL_SDL ?= $(PATH_SDK_LIBSDL)/SDL/SDL12.dll
+ DLL_SDK_LIBSDL_FSLIB ?= $(PATH_SDK_LIBSDL)/SDL/FSLib.dll
+ LIB_SDK_LIBSDL_SDL ?= $(PATH_SDK_LIBSDL)/SDL/SDL12.lib
+ LIB_SDK_LIBSDL_SDLGFX ?= $(PATH_SDK_LIBSDL)/SDLGfx/SDLGFX.lib
+ LIB_SDK_LIBSDL_SDLIMAGE ?= $(PATH_SDK_LIBSDL)/SDLImage/SDLIMAGE.lib
+ LIB_SDK_LIBSDL_SDLMIXER ?= $(PATH_SDK_LIBSDL)/SDLMixer/SDLMIXER.lib
+ LIB_SDK_LIBSDL_SDLNET ?= $(PATH_SDK_LIBSDL)/SDLNet/SDLNET.lib
+ LIB_SDK_LIBSDL_SDLTTF ?= $(PATH_SDK_LIBSDL)/SDLTTF/SDLTTF.lib
+
+ # General Properties used by kBuild
+ SDK_LIBSDL_INCS ?= \
+ $(PATH_SDK_LIBSDL)/SDL/include \
+ $(PATH_SDK_LIBSDL)/SDLGfx \
+ $(PATH_SDK_LIBSDL)/SDLImage \
+ $(PATH_SDK_LIBSDL)/SDLMixer \
+ $(PATH_SDK_LIBSDL)/SDLNet \
+ $(PATH_SDK_LIBSDL)/SDLTTF
+ SDK_LIBSDL_LIBS ?= \
+ $(LIB_SDK_LIBSDL_SDL)
+ SDK_LIBSDL_LIBPATH ?= \
+ $(PATH_SDK_LIBSDL)/SDL \
+ $(PATH_SDK_LIBSDL)/SDLGfx \
+ $(PATH_SDK_LIBSDL)/SDLImage \
+ $(PATH_SDK_LIBSDL)/SDLMixer \
+ $(PATH_SDK_LIBSDL)/SDLNet \
+ $(PATH_SDK_LIBSDL)/SDLTTF
+
+else ifeq ($(KBUILD_TARGET),win) # ASSUMES VC++ on windows, sorry.
+ LIB_SDK_LIBSDL_SDLMAIN ?= $(PATH_SDK_LIBSDL)/lib/SDLmain.lib
+ LIB_SDK_LIBSDL_SDL ?= $(PATH_SDK_LIBSDL)/lib/SDL.lib
+ DLL_SDK_LIBSDL_SDL ?= $(PATH_SDK_LIBSDL)/lib/SDL.dll
+ LIB_SDK_LIBSDL_SDLGFX ?= $(PATH_SDK_LIBSDL)/lib/SDL_gfx.lib
+ LIB_SDK_LIBSDL_SDLIMAGE ?= $(PATH_SDK_LIBSDL)/lib/SDL_image.lib
+ LIB_SDK_LIBSDL_SDLMIXER ?= $(PATH_SDK_LIBSDL)/lib/SDL_mixer.lib
+ LIB_SDK_LIBSDL_SDLNET ?= $(PATH_SDK_LIBSDL)/lib/SDL_net.lib
+ LIB_SDK_LIBSDL_SDLTTF ?= $(PATH_SDK_LIBSDL)/lib/SDL_ttf.lib
+ DLL_SDK_LIBSDL_SDLTTF ?= $(PATH_SDK_LIBSDL)/lib/SDL_ttf.dll
+
+ # General Properties used by kBuild
+ SDK_LIBSDL_INCS ?= \
+ $(PATH_SDK_LIBSDL)/include/SDL \
+ $(PATH_SDK_LIBSDL)/include
+ SDK_LIBSDL_LIBS ?= \
+ $(LIB_SDK_LIBSDL_SDL)
+ SDK_LIBSDL_LIBPATH ?= \
+ $(PATH_SDK_LIBSDL)/lib
+
+else ifeq ($(KBUILD_TARGET).$(_SDK_LIBSDK_IS_FRAMEWORK),darwin.yes)
+ # darwin + framework
+ LIB_SDK_LIBSDL_SDLMAIN ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL_SDL ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL_SDLGFX ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL_SDLIMAGE ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL_SDLMIXER ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL_SDLNET ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL_SDLTTF ?= $(NO_SUCH_VARIABLE)
+
+ # General Properties used by kBuild
+ SDK_LIBSDL_INCS ?= $(PATH_SDK_LIBSDL)/Headers
+ SDK_LIBSDL_LDFLAGS ?= -framework SDL
+
+else # ASSUMES Unix like system
+ LIB_SDK_LIBSDL_SDLMAIN ?= SDLmain
+ LIB_SDK_LIBSDL_SDL ?= SDL
+ LIB_SDK_LIBSDL_SDLGFX ?= SDL_gfx
+ LIB_SDK_LIBSDL_SDLIMAGE ?= SDL_image
+ LIB_SDK_LIBSDL_SDLMIXER ?= SDL_mixer
+ LIB_SDK_LIBSDL_SDLNET ?= SDL_net
+ LIB_SDK_LIBSDL_SDLTTF ?= SDL_ttf
+
+ # General Properties used by kBuild
+ ifndef SDK_LIBSDL_INCS
+ ifneq ($(wildcard $(PATH_SDK_LIBSDL)/include/SDL/),)
+ SDK_LIBSDL_INCS := $(PATH_SDK_LIBSDL)/include/SDL
+ else
+ SDK_LIBSDL_INCS := $(PATH_SDK_LIBSDL)/include
+ endif
+ endif
+ SDK_LIBSDL_LIBS ?= \
+ $(LIB_SDK_LIBSDL_SDL)
+ SDK_LIBSDL_LIBPATH ?= \
+ $(PATH_SDK_LIBSDL)/lib
+endif
diff --git a/kBuild/sdks/LIBSDL2.kmk b/kBuild/sdks/LIBSDL2.kmk
new file mode 100644
index 0000000..ac47361
--- /dev/null
+++ b/kBuild/sdks/LIBSDL2.kmk
@@ -0,0 +1,154 @@
+# $Id: LIBSDL2.kmk 3588 2023-01-31 13:45:33Z bird $
+## @file
+# kBuild SDK - Simple DirectMedia Layer v2.x, targeting $(KBUILD_TARGET).
+#
+
+#
+# Copyright (c) 2006-2023 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_LIBSDL2 := Simple DirectMedia Layer v2.x, targeting $(KBUILD_TARGET).
+
+# SDK Specific Properties
+_SDK_LIBSDL2_IS_FRAMEWORK := no
+ifndef PATH_SDK_LIBSDL2
+ PATH_SDK_LIBSDL2 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS_TRG)/libsdl2/v*)))
+ ifeq ($(PATH_SDK_LIBSDL2),)
+ PATH_SDK_LIBSDL2 := $(firstfile $(rsortfiles $(qwildcard ,$(KBUILD_DEVTOOLS_BLD)/libsdl2/v*)))
+ endif
+ ifeq ($(PATH_SDK_LIBSDL2),)
+ # Darwin might have a framework for it.
+ ifeq ($(KBUILD_TARGET),darwin)
+ PATH_SDK_LIBSDL2 := $(firstword $(wildcard \
+ /System/Library/Frameworks/SDL2.framework/SDL2 \
+ /Library/Frameworks/SDL2.framework/SDL2 \
+ ) )
+ ifneq ($(PATH_SDK_LIBSDL2),)
+ PATH_SDK_LIBSDL2 := $(patsubst %/,%,$(dir $(PATH_SDK_LIBSDL2)))
+ _SDK_LIBSDL2_IS_FRAMEWORK := yes
+ endif
+ endif
+
+ ifeq ($(PATH_SDK_LIBSDL2),)
+ PATH_SDK_LIBSDL2 := $(firstword $(foreach root,$(KBUILD_LIB_SEARCH_ROOTS) \
+ ,$(if $(wildcard $(addsuffix libSDL2.*,$(addprefix $(root),$(KBUILD_LIB_SEARCH_SUBS)))),$(root),) ))
+ ifeq ($(PATH_SDK_LIBSDL2),/)
+ PATH_SDK_LIBSDL2 := /.
+ else ifneq ($(PATH_SDK_LIBSDL2),)
+ PATH_SDK_LIBSDL2 := $(patsubst %/,%,$(PATH_SDK_LIBSDL2))
+ else
+ $(warning kBuild: PATH_SDK_LIBSDL2 couldn't be determined!)
+ PATH_SDK_LIBSDL2 := $(KBUILD_DEVTOOLS_TRG)/libsdl/not/found
+ endif
+ endif
+ endif
+else
+ PATH_SDK_LIBSDL2 := $(PATH_SDK_LIBSDL2)
+ ifeq ($(KBUILD_TARGET),darwin)
+ # Check if it's the framework or not.
+ _SDK_LIBSDL2_IS_FRAMEWORK := $(if $(wildcard $(PATH_SDK_LIBSDL2)/Headers/SDL.h),yes)
+ endif
+endif
+ifeq ($(KBUILD_TARGET).$(_SDK_LIBSDL2_IS_FRAMEWORK),darwin.yes)
+ PATH_SDK_LIBSDL2_FRAMEWORKS_DIR := $(abspath $(PATH_SDK_LIBSDL2)/..)
+endif
+
+#
+# The way libsdl is distributed on the different platforms
+# varies quite a bit, thus this kludge.
+#
+ifeq ($(KBUILD_TARGET),os2) ## @todo
+ LIB_SDK_LIBSDL2_SDLMAIN ?=
+ DLL_SDK_LIBSDL2_SDL ?= $(PATH_SDK_LIBSDL2)/dll/sdl2.dll
+ LIB_SDK_LIBSDL2_SDL ?= $(PATH_SDK_LIBSDL2)/lib/sdl2.lib
+ LIB_SDK_LIBSDL2_SDLIMAGE ?= $(PATH_SDK_LIBSDL2)/lib/sdl2img.lib
+ LIB_SDK_LIBSDL2_SDLMIXER ?= $(PATH_SDK_LIBSDL2)/lib/sdl2mix.lib
+ LIB_SDK_LIBSDL2_SDLTTF ?= $(PATH_SDK_LIBSDL2)/lib/sdl2ttf.lib
+
+ # General Properties used by kBuild
+ SDK_LIBSDL2_INCS ?= $(PATH_SDK_LIBSDL2)/h/SDL2
+ SDK_LIBSDL2_LIBS ?= $(LIB_SDK_LIBSDL2_SDL)
+ SDK_LIBSDL2_LIBPATH ?= $(PATH_SDK_LIBSDL2)/lib
+
+else ifeq ($(KBUILD_TARGET),win) # ASSUMES VC++ on windows, sorry.
+ include $(KBUILD_PATH)/win-common.kmk
+ LIB_SDK_LIBSDL2_SDLMAIN ?= $(PATH_SDK_LIBSDL2)/lib/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))/SDL2main.lib
+ LIB_SDK_LIBSDL2_SDL ?= $(PATH_SDK_LIBSDL2)/lib/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))/SDL2.lib
+ DLL_SDK_LIBSDL2_SDL ?= $(PATH_SDK_LIBSDL2)/lib/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))/SDL2.dll
+ LIB_SDK_LIBSDL2_SDLTEST ?= $(PATH_SDK_LIBSDL2)/lib/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))/SDL2test.lib
+
+ LIB_SDK_LIBSDL2_SDLGFX ?= $(PATH_SDK_LIBSDL2)/lib/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))/SDL2test.lib
+ LIB_SDK_LIBSDL2_SDLIMAGE ?= $(PATH_SDK_LIBSDL2)/lib/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))/SDL2_image.lib
+ LIB_SDK_LIBSDL2_SDLMIXER ?= $(PATH_SDK_LIBSDL2)/lib/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))/SDL2_mixer.lib
+ LIB_SDK_LIBSDL2_SDLNET ?= $(PATH_SDK_LIBSDL2)/lib/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))/SDL2_net.lib
+ LIB_SDK_LIBSDL2_SDLTTF ?= $(PATH_SDK_LIBSDL2)/lib/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))/SDL2_ttf.lib
+ DLL_SDK_LIBSDL2_SDLTTF ?= $(PATH_SDK_LIBSDL2)/lib/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))/SDL2_ttf.dll
+
+ # General Properties used by kBuild
+ SDK_LIBSDL2_INCS ?= $(PATH_SDK_LIBSDL2)/include
+ SDK_LIBSDL2_LIBS ?= $(LIB_SDK_LIBSDL2_SDL)
+ SDK_LIBSDL2_LIBPATH ?= $(PATH_SDK_LIBSDL2)/$(PATH_SDK_LIBSDL2)/lib/$(WINCMN_MAP_ARCH.$(KBUILD_TARGET_ARCH))
+
+else ifeq ($(KBUILD_TARGET).$(_SDK_LIBSDL2_IS_FRAMEWORK),darwin.yes)
+ # darwin + framework
+ LIB_SDK_LIBSDL2_SDLMAIN ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL2_SDL ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL2_SDLGFX ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL2_SDLIMAGE ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL2_SDLMIXER ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL2_SDLNET ?= $(NO_SUCH_VARIABLE)
+ LIB_SDK_LIBSDL2_SDLTTF ?= $(NO_SUCH_VARIABLE)
+
+ # General Properties used by kBuild
+ SDK_LIBSDL2_INCS ?= $(PATH_SDK_LIBSDL2)/Headers
+ SDK_LIBSDL2_LDFLAGS ?= -F$(PATH_SDK_LIBSDL2_FRAMEWORKS_DIR) -framework SDL2
+ SDK_LIBSDL2_CFLAGS ?= -F$(PATH_SDK_LIBSDL2_FRAMEWORKS_DIR)
+ SDK_LIBSDL2_CXXFLAGS ?= -F$(PATH_SDK_LIBSDL2_FRAMEWORKS_DIR)
+ SDK_LIBSDL2_OBJCFLAGS ?= -F$(PATH_SDK_LIBSDL2_FRAMEWORKS_DIR)
+ SDK_LIBSDL2_OBJCXXFLAGS ?= -F$(PATH_SDK_LIBSDL2_FRAMEWORKS_DIR)
+
+else # ASSUMES Unix like system
+ LIB_SDK_LIBSDL2_SDLMAIN ?= SDL2main
+ LIB_SDK_LIBSDL2_SDL ?= SDL2
+ LIB_SDK_LIBSDL2_SDLGFX ?= SDL2_gfx
+ LIB_SDK_LIBSDL2_SDLIMAGE ?= SDL2_image
+ LIB_SDK_LIBSDL2_SDLMIXER ?= SDL2_mixer
+ LIB_SDK_LIBSDL2_SDLNET ?= SDL2_net
+ LIB_SDK_LIBSDL2_SDLTTF ?= SDL2_ttf
+
+ # General Properties used by kBuild
+ ifndef SDK_LIBSDL2_INCS
+ if exists("$(PATH_SDK_LIBSDL2)/include/SDL2/")
+ SDK_LIBSDL2_INCS := $(PATH_SDK_LIBSDL2)/include/SDL2
+ else
+ SDK_LIBSDL2_INCS := $(PATH_SDK_LIBSDL2)/include
+ endif
+ endif
+ SDK_LIBSDL2_LIBS ?= $(LIB_SDK_LIBSDL2_SDL)
+ SDK_LIBSDL2_LIBPATH ?= $(PATH_SDK_LIBSDL2)/lib
+endif
+
diff --git a/kBuild/sdks/MACOSX1010.kmk b/kBuild/sdks/MACOSX1010.kmk
new file mode 100644
index 0000000..8abf5f0
--- /dev/null
+++ b/kBuild/sdks/MACOSX1010.kmk
@@ -0,0 +1,62 @@
+# $Id: MACOSX1010.kmk 3489 2020-09-22 13:44:52Z bird $
+## @file
+# kBuild SDK - Mac OS X v10.10 SDK.
+#
+
+#
+# Copyright (c) 2008-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef INCLUDED_DARWIN_COMMON_KMK
+ include $(KBUILD_PATH)/darwin-common.kmk
+endif
+
+SDK_MACOSX1010 := Mac OS X v10.10 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX1010
+ PATH_SDK_MACOSX1010 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX10.10.sdk)
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX1010 := $(PATH_SDK_MACOSX1010)
+endif
+ifeq ($(PATH_SDK_MACOSX1010),)
+ $(warning $(call DARWINCMN_FN_ERROR_MACOSX_SDK,MacOSX10.10.sdk))
+endif
+
+## The MAC_OS_X_VERSION_MIN_REQUIRED and MAC_OS_X_VERSION_MAX_ALLOWED value for this SDK.
+SDK_MACOSX1010_VERSION_VALUE := 101000
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX1010_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=101000
+SDK_MACOSX1010_CFLAGS ?= -mmacosx-version-min=10.10 -isysroot "$(PATH_SDK_MACOSX1010)"
+SDK_MACOSX1010_CXXFLAGS ?= -mmacosx-version-min=10.10 -isysroot "$(PATH_SDK_MACOSX1010)"
+SDK_MACOSX1010_OBJCFLAGS ?= -mmacosx-version-min=10.10 -isysroot "$(PATH_SDK_MACOSX1010)"
+SDK_MACOSX1010_OBJCXXFLAGS ?= -mmacosx-version-min=10.10 -isysroot "$(PATH_SDK_MACOSX1010)"
+SDK_MACOSX1010_LDFLAGS ?= -mmacosx-version-min=10.10 -isysroot "$(PATH_SDK_MACOSX1010)"
+
diff --git a/kBuild/sdks/MACOSX1013.kmk b/kBuild/sdks/MACOSX1013.kmk
new file mode 100644
index 0000000..a17d53f
--- /dev/null
+++ b/kBuild/sdks/MACOSX1013.kmk
@@ -0,0 +1,62 @@
+# $Id: MACOSX1013.kmk 3489 2020-09-22 13:44:52Z bird $
+## @file
+# kBuild SDK - Mac OS X v10.13 SDK.
+#
+
+#
+# Copyright (c) 2008-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef INCLUDED_DARWIN_COMMON_KMK
+ include $(KBUILD_PATH)/darwin-common.kmk
+endif
+
+SDK_MACOSX1013 := Mac OS X v10.13 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX1013
+ PATH_SDK_MACOSX1013 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX10.13.sdk)
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX1013 := $(PATH_SDK_MACOSX1013)
+endif
+ifeq ($(PATH_SDK_MACOSX1013),)
+ $(warning $(call DARWINCMN_FN_ERROR_MACOSX_SDK,MacOSX10.13.sdk))
+endif
+
+## The MAC_OS_X_VERSION_MIN_REQUIRED and MAC_OS_X_VERSION_MAX_ALLOWED value for this SDK.
+SDK_MACOSX1013_VERSION_VALUE := 101300
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX1013_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=101300
+SDK_MACOSX1013_CFLAGS ?= -mmacosx-version-min=10.13 -isysroot "$(PATH_SDK_MACOSX1013)"
+SDK_MACOSX1013_CXXFLAGS ?= -mmacosx-version-min=10.13 -isysroot "$(PATH_SDK_MACOSX1013)"
+SDK_MACOSX1013_OBJCFLAGS ?= -mmacosx-version-min=10.13 -isysroot "$(PATH_SDK_MACOSX1013)"
+SDK_MACOSX1013_OBJCXXFLAGS ?= -mmacosx-version-min=10.13 -isysroot "$(PATH_SDK_MACOSX1013)"
+SDK_MACOSX1013_LDFLAGS ?= -mmacosx-version-min=10.13 -isysroot "$(PATH_SDK_MACOSX1013)"
+
diff --git a/kBuild/sdks/MACOSX1013INCS.kmk b/kBuild/sdks/MACOSX1013INCS.kmk
new file mode 100644
index 0000000..83c15c1
--- /dev/null
+++ b/kBuild/sdks/MACOSX1013INCS.kmk
@@ -0,0 +1,49 @@
+# $Id: MACOSX1013INCS.kmk 3401 2020-07-05 15:58:36Z bird $
+## @file
+# kBuild SDK - Mac OS X v10.13 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_MACOSX1013
+ include $(KBUILD_PATH)/sdks/MACOSX1013.kmk
+endif
+
+SDK_MACOSX1013INCS := Mac OS X v10.13 SDK, include only.
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX1013INCS
+ PATH_SDK_MACOSX1013INCS := $(PATH_SDK_MACOSX1013)
+else
+ PATH_SDK_MACOSX1013INCS := $(PATH_SDK_MACOSX1013INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX1013INCS_INCS = $(PATH_SDK_MACOSX1013INCS)/usr/include
+
diff --git a/kBuild/sdks/MACOSX1014.kmk b/kBuild/sdks/MACOSX1014.kmk
new file mode 100644
index 0000000..c851ef5
--- /dev/null
+++ b/kBuild/sdks/MACOSX1014.kmk
@@ -0,0 +1,62 @@
+# $Id: MACOSX1014.kmk 3489 2020-09-22 13:44:52Z bird $
+## @file
+# kBuild SDK - Mac OS X v10.14 SDK.
+#
+
+#
+# Copyright (c) 2008-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef INCLUDED_DARWIN_COMMON_KMK
+ include $(KBUILD_PATH)/darwin-common.kmk
+endif
+
+SDK_MACOSX1014 := Mac OS X v10.14 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX1014
+ PATH_SDK_MACOSX1014 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX10.14.sdk)
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX1014 := $(PATH_SDK_MACOSX1014)
+endif
+ifeq ($(PATH_SDK_MACOSX1014),)
+ $(warning $(call DARWINCMN_FN_ERROR_MACOSX_SDK,MacOSX10.14.sdk))
+endif
+
+## The MAC_OS_X_VERSION_MIN_REQUIRED and MAC_OS_X_VERSION_MAX_ALLOWED value for this SDK.
+SDK_MACOSX1014_VERSION_VALUE := 101400
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX1014_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=101400
+SDK_MACOSX1014_CFLAGS ?= -mmacosx-version-min=10.14 -isysroot "$(PATH_SDK_MACOSX1014)"
+SDK_MACOSX1014_CXXFLAGS ?= -mmacosx-version-min=10.14 -isysroot "$(PATH_SDK_MACOSX1014)"
+SDK_MACOSX1014_OBJCFLAGS ?= -mmacosx-version-min=10.14 -isysroot "$(PATH_SDK_MACOSX1014)"
+SDK_MACOSX1014_OBJCXXFLAGS ?= -mmacosx-version-min=10.14 -isysroot "$(PATH_SDK_MACOSX1014)"
+SDK_MACOSX1014_LDFLAGS ?= -mmacosx-version-min=10.14 -isysroot "$(PATH_SDK_MACOSX1014)"
+
diff --git a/kBuild/sdks/MACOSX1014INCS.kmk b/kBuild/sdks/MACOSX1014INCS.kmk
new file mode 100644
index 0000000..a7b8f55
--- /dev/null
+++ b/kBuild/sdks/MACOSX1014INCS.kmk
@@ -0,0 +1,49 @@
+# $Id: MACOSX1014INCS.kmk 3407 2020-07-17 20:03:06Z bird $
+## @file
+# kBuild SDK - Mac OS X v10.14 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_MACOSX1014
+ include $(KBUILD_PATH)/sdks/MACOSX1014.kmk
+endif
+
+SDK_MACOSX1014INCS := Mac OS X v10.14 SDK, include only.
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX1014INCS
+ PATH_SDK_MACOSX1014INCS := $(PATH_SDK_MACOSX1014)
+else
+ PATH_SDK_MACOSX1014INCS := $(PATH_SDK_MACOSX1014INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX1014INCS_INCS = $(PATH_SDK_MACOSX1014INCS)/usr/include
+
diff --git a/kBuild/sdks/MACOSX1015.kmk b/kBuild/sdks/MACOSX1015.kmk
new file mode 100644
index 0000000..8e454df
--- /dev/null
+++ b/kBuild/sdks/MACOSX1015.kmk
@@ -0,0 +1,62 @@
+# $Id: MACOSX1015.kmk 3489 2020-09-22 13:44:52Z bird $
+## @file
+# kBuild SDK - Mac OS X v10.15 SDK.
+#
+
+#
+# Copyright (c) 2008-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef INCLUDED_DARWIN_COMMON_KMK
+ include $(KBUILD_PATH)/darwin-common.kmk
+endif
+
+SDK_MACOSX1015 := Mac OS X v10.15 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX1015
+ PATH_SDK_MACOSX1015 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX10.15.sdk)
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX1015 := $(PATH_SDK_MACOSX1015)
+endif
+ifeq ($(PATH_SDK_MACOSX1015),)
+ $(warning $(call DARWINCMN_FN_ERROR_MACOSX_SDK,MacOSX10.15.sdk))
+endif
+
+## The MAC_OS_X_VERSION_MIN_REQUIRED and MAC_OS_X_VERSION_MAX_ALLOWED value for this SDK.
+SDK_MACOSX1015_VERSION_VALUE := 101500
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX1015_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=101500
+SDK_MACOSX1015_CFLAGS ?= -mmacosx-version-min=10.15 -isysroot "$(PATH_SDK_MACOSX1015)"
+SDK_MACOSX1015_CXXFLAGS ?= -mmacosx-version-min=10.15 -isysroot "$(PATH_SDK_MACOSX1015)"
+SDK_MACOSX1015_OBJCFLAGS ?= -mmacosx-version-min=10.15 -isysroot "$(PATH_SDK_MACOSX1015)"
+SDK_MACOSX1015_OBJCXXFLAGS ?= -mmacosx-version-min=10.15 -isysroot "$(PATH_SDK_MACOSX1015)"
+SDK_MACOSX1015_LDFLAGS ?= -mmacosx-version-min=10.15 -isysroot "$(PATH_SDK_MACOSX1015)"
+
diff --git a/kBuild/sdks/MACOSX1015INCS.kmk b/kBuild/sdks/MACOSX1015INCS.kmk
new file mode 100644
index 0000000..cda5b44
--- /dev/null
+++ b/kBuild/sdks/MACOSX1015INCS.kmk
@@ -0,0 +1,49 @@
+# $Id: MACOSX1015INCS.kmk 3407 2020-07-17 20:03:06Z bird $
+## @file
+# kBuild SDK - Mac OS X v10.15 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_MACOSX1015
+ include $(KBUILD_PATH)/sdks/MACOSX1015.kmk
+endif
+
+SDK_MACOSX1015INCS := Mac OS X v10.15 SDK, include only.
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX1015INCS
+ PATH_SDK_MACOSX1015INCS := $(PATH_SDK_MACOSX1015)
+else
+ PATH_SDK_MACOSX1015INCS := $(PATH_SDK_MACOSX1015INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX1015INCS_INCS = $(PATH_SDK_MACOSX1015INCS)/usr/include
+
diff --git a/kBuild/sdks/MACOSX104.kmk b/kBuild/sdks/MACOSX104.kmk
new file mode 100644
index 0000000..4550973
--- /dev/null
+++ b/kBuild/sdks/MACOSX104.kmk
@@ -0,0 +1,52 @@
+# $Id: MACOSX104.kmk 3489 2020-09-22 13:44:52Z bird $
+## @file
+# kBuild SDK - Mac OS X v10.4 SDK.
+#
+
+#
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_MACOSX104 := Mac OS X v10.4 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX104
+ PATH_SDK_MACOSX104 := /Developer/SDKs/MacOSX10.4u.sdk
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX104 := $(PATH_SDK_MACOSX104)
+endif
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX104_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=1040
+SDK_MACOSX104_CFLAGS ?= -mmacosx-version-min=10.4 -isysroot "$(PATH_SDK_MACOSX104)"
+SDK_MACOSX104_CXXFLAGS ?= -mmacosx-version-min=10.4 -isysroot "$(PATH_SDK_MACOSX104)"
+SDK_MACOSX104_OBJCFLAGS ?= -mmacosx-version-min=10.4 -isysroot "$(PATH_SDK_MACOSX104)"
+SDK_MACOSX104_OBJCXXFLAGS ?= -mmacosx-version-min=10.4 -isysroot "$(PATH_SDK_MACOSX104)"
+SDK_MACOSX104_LDFLAGS ?= -mmacosx-version-min=10.4 -Wl,-syslibroot,"$(PATH_SDK_MACOSX104)"
+
diff --git a/kBuild/sdks/MACOSX104INCS.kmk b/kBuild/sdks/MACOSX104INCS.kmk
new file mode 100644
index 0000000..e8f656b
--- /dev/null
+++ b/kBuild/sdks/MACOSX104INCS.kmk
@@ -0,0 +1,50 @@
+# $Id: MACOSX104INCS.kmk 3121 2017-10-31 10:58:59Z bird $
+## @file
+# kBuild SDK - Mac OS X v10.4 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_MACOSX104INCS := Mac OS X v10.4 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX104INCS
+ ifdef PATH_SDK_MACOSX104
+ PATH_SDK_MACOSX104INCS := $(PATH_SDK_MACOSX104)
+ else
+ PATH_SDK_MACOSX104INCS := /Developer/SDKs/MacOSX10.4u.sdk
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX104INCS := $(PATH_SDK_MACOSX104INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX104INCS_INCS = $(PATH_SDK_MACOSX104INCS)/usr/include
+
diff --git a/kBuild/sdks/MACOSX105.kmk b/kBuild/sdks/MACOSX105.kmk
new file mode 100644
index 0000000..62b3cd2
--- /dev/null
+++ b/kBuild/sdks/MACOSX105.kmk
@@ -0,0 +1,52 @@
+# $Id: MACOSX105.kmk 3489 2020-09-22 13:44:52Z bird $
+## @file
+# kBuild SDK - Mac OS X v10.5 SDK.
+#
+
+#
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_MACOSX105 := Mac OS X v10.5 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX105
+ PATH_SDK_MACOSX105 := /Developer/SDKs/MacOSX10.5.sdk
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX105 := $(PATH_SDK_MACOSX105)
+endif
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX105_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=1050
+SDK_MACOSX105_CFLAGS ?= -mmacosx-version-min=10.5 -isysroot "$(PATH_SDK_MACOSX105)"
+SDK_MACOSX105_CXXFLAGS ?= -mmacosx-version-min=10.5 -isysroot "$(PATH_SDK_MACOSX105)"
+SDK_MACOSX105_OBJCFLAGS ?= -mmacosx-version-min=10.5 -isysroot "$(PATH_SDK_MACOSX105)"
+SDK_MACOSX105_OBJCXXFLAGS ?= -mmacosx-version-min=10.5 -isysroot "$(PATH_SDK_MACOSX105)"
+SDK_MACOSX105_LDFLAGS ?= -mmacosx-version-min=10.5 -Wl,-syslibroot,"$(PATH_SDK_MACOSX105)"
+
diff --git a/kBuild/sdks/MACOSX105INCS.kmk b/kBuild/sdks/MACOSX105INCS.kmk
new file mode 100644
index 0000000..7965c9d
--- /dev/null
+++ b/kBuild/sdks/MACOSX105INCS.kmk
@@ -0,0 +1,50 @@
+# $Id: MACOSX105INCS.kmk 3121 2017-10-31 10:58:59Z bird $
+## @file
+# kBuild SDK - Mac OS X v10.5 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_MACOSX105INCS := Mac OS X v10.5 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX105INCS
+ ifdef PATH_SDK_MACOSX105
+ PATH_SDK_MACOSX105INCS := $(PATH_SDK_MACOSX105)
+ else
+ PATH_SDK_MACOSX105INCS := /Developer/SDKs/MacOSX10.5.sdk
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX105INCS := $(PATH_SDK_MACOSX105INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX105INCS_INCS = $(PATH_SDK_MACOSX105INCS)/usr/include
+
diff --git a/kBuild/sdks/MACOSX110.kmk b/kBuild/sdks/MACOSX110.kmk
new file mode 100644
index 0000000..1715f80
--- /dev/null
+++ b/kBuild/sdks/MACOSX110.kmk
@@ -0,0 +1,62 @@
+# $Id: MACOSX110.kmk 3495 2020-12-23 20:18:20Z bird $
+## @file
+# kBuild SDK - Mac OS X v11.0 SDK.
+#
+
+#
+# Copyright (c) 2008-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef INCLUDED_DARWIN_COMMON_KMK
+ include $(KBUILD_PATH)/darwin-common.kmk
+endif
+
+SDK_MACOSX110 := Mac OS X v11.0 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX110
+ PATH_SDK_MACOSX110 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX11.0.sdk)
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX110 := $(PATH_SDK_MACOSX110)
+endif
+ifeq ($(PATH_SDK_MACOSX110),)
+ $(warning $(call DARWINCMN_FN_ERROR_MACOSX_SDK,MacOSX11.0.sdk))
+endif
+
+## The MAC_OS_X_VERSION_MIN_REQUIRED and MAC_OS_X_VERSION_MAX_ALLOWED value for this SDK.
+SDK_MACOSX110_VERSION_VALUE := 110000
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX110_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=110000
+SDK_MACOSX110_CFLAGS ?= -mmacosx-version-min=11.0 -isysroot "$(PATH_SDK_MACOSX110)"
+SDK_MACOSX110_CXXFLAGS ?= -mmacosx-version-min=11.0 -isysroot "$(PATH_SDK_MACOSX110)"
+SDK_MACOSX110_OBJCFLAGS ?= -mmacosx-version-min=11.0 -isysroot "$(PATH_SDK_MACOSX110)"
+SDK_MACOSX110_OBJCXXFLAGS ?= -mmacosx-version-min=11.0 -isysroot "$(PATH_SDK_MACOSX110)"
+SDK_MACOSX110_LDFLAGS ?= -mmacosx-version-min=11.0 -isysroot "$(PATH_SDK_MACOSX110)"
+
diff --git a/kBuild/sdks/MACOSX110INCS.kmk b/kBuild/sdks/MACOSX110INCS.kmk
new file mode 100644
index 0000000..aa26b10
--- /dev/null
+++ b/kBuild/sdks/MACOSX110INCS.kmk
@@ -0,0 +1,49 @@
+# $Id: MACOSX110INCS.kmk 3495 2020-12-23 20:18:20Z bird $
+## @file
+# kBuild SDK - Mac OS X v11.0 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_MACOSX110
+ include $(KBUILD_PATH)/sdks/MACOSX110.kmk
+endif
+
+SDK_MACOSX110INCS := Mac OS X v11.0 SDK, include only.
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX110INCS
+ PATH_SDK_MACOSX110INCS := $(PATH_SDK_MACOSX110)
+else
+ PATH_SDK_MACOSX110INCS := $(PATH_SDK_MACOSX110INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX110INCS_INCS = $(PATH_SDK_MACOSX110INCS)/usr/include
+
diff --git a/kBuild/sdks/NT4DDK.kmk b/kBuild/sdks/NT4DDK.kmk
new file mode 100644
index 0000000..ede2b19
--- /dev/null
+++ b/kBuild/sdks/NT4DDK.kmk
@@ -0,0 +1,59 @@
+# $Id: NT4DDK.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Windows NT 4 DDK, targeting X86.
+#
+
+#
+# Copyright (c) 2005-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_NT4DDK := The MicroSoft NT 4 DDK, targeting X86 (free, not checked).
+
+# SDK Specific Properties
+ifndef PATH_SDK_NT4DDK
+ PATH_SDK_NT4DDK := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/ddknt4/1* $(KBUILD_DEVTOOLS)/win.x86/ddknt4/2*)
+ ifeq ($(PATH_SDK_NT4DDK),)
+ PATH_SDK_NT4DDK := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/ddknt4)
+ endif
+ ifneq ($(PATH_SDK_NT4DDK),)
+ PATH_SDK_NT4DDK := $(lastword $(sort $(PATH_SDK_NT4DDK)))
+ else
+ $(warning kBuild: PATH_SDK_NT4DDK couldn't be determined!)
+ PATH_SDK_NT4DDK := $(KBUILD_DEVTOOLS)/x86.win/ddknt4/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_NT4DDK := $(PATH_SDK_NT4DDK)
+endif
+PATH_SDK_NT4DDK_INC ?= $(PATH_SDK_NT4DDK)/inc
+PATH_SDK_NT4DDK_LIB ?= $(PATH_SDK_NT4DDK)/lib/i386/free
+
+# General Properties used by kBuild
+SDK_NT4DDK_DEFS ?= _X86_
+SDK_NT4DDK_INCS ?= $(PATH_SDK_NT4DDK_INC)
+SDK_NT4DDK_LIBPATH ?= $(PATH_SDK_NT4DDK_LIB)
+
diff --git a/kBuild/sdks/OS2DDKBASE32.kmk b/kBuild/sdks/OS2DDKBASE32.kmk
new file mode 100644
index 0000000..392fe3a
--- /dev/null
+++ b/kBuild/sdks/OS2DDKBASE32.kmk
@@ -0,0 +1,59 @@
+# $Id: OS2DDKBASE32.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+#
+# kBuild SDK - The OS/2 DDK, 32-bit base headers and libraries.
+
+#
+# Copyright (c) 2007-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_OS2DDKBASE32 := The OS/2 DDK, 32-bit base headers and libraries.
+
+# SDK Specific Properties
+ifndef PATH_SDK_OS2DDKBASE32
+ PATH_SDK_OS2DDKBASE32 := $(wildcard $(KBUILD_DEVTOOLS)/os2.x86/ddk/2*/base32)
+ ifeq ($(PATH_SDK_OS2DDKBASE32),)
+ PATH_SDK_OS2DDKBASE32 := $(wildcard $(PATH_DDKBASE)/../base32)
+ endif
+ ifneq ($(PATH_SDK_OS2DDKBASE32),)
+ PATH_SDK_OS2DDKBASE32 := $(lastword $(sort $(PATH_SDK_OS2DDKBASE32)))
+ else
+ $(warning kBuild: PATH_SDK_OS2DDKBASE32 couldn't be determined!)
+ PATH_SDK_OS2DDKBASE32 := $(KBUILD_DEVTOOLS)/x86.win/ddknt4/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_OS2DDKBASE32 := $(PATH_SDK_OS2DDKBASE32)
+endif
+PATH_SDK_OS2DDKBASE32_INC ?=
+PATH_SDK_OS2DDKBASE32_LIB ?= $(PATH_SDK_OS2DDKBASE32)/lib/i386/free
+
+# General Properties used by kBuild
+SDK_OS2DDKBASE32_INCS ?= $(PATH_SDK_OS2DDKBASE32)/rel/os2c/include/base/os2/16bit
+SDK_OS2DDKBASE32_ASINCS ?= $(PATH_SDK_OS2DDKBASE32)/rel/os2c/include/base/os2/inc
+SDK_OS2DDKBASE32_LIBPATH ?= $(PATH_SDK_OS2DDKBASE32_LIB)
+
diff --git a/kBuild/sdks/ReorderCompilerIncs.kmk b/kBuild/sdks/ReorderCompilerIncs.kmk
new file mode 100644
index 0000000..64fa115
--- /dev/null
+++ b/kBuild/sdks/ReorderCompilerIncs.kmk
@@ -0,0 +1,63 @@
+# $Id: ReorderCompilerIncs.kmk 3121 2017-10-31 10:58:59Z bird $
+## @file
+# kBuild SDK - Pseudo SDK that inserts the compiler includes a bit earlier.
+#
+# Note! This SDK is using a number of internal kBuild variables as well as
+# making assumptions about expansion order and location.
+# Please, do NOT attempt anything like this in your own SDKs!!
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_ReorderCompilerIncs := Pseudo SDK that inserts the compiler includes a bit earlier.
+
+FN_SDK_ReorderCompilerIncs_GET_INCS = \
+ $(TOOL_$(tool)_$(1)INCS.$(2).$(3).$(5)) \
+ $(TOOL_$(tool)_$(1)INCS.$(2).$(3)) \
+ $(TOOL_$(tool)_$(1)INCS.$(2).$(5)) \
+ $(TOOL_$(tool)_$(1)INCS.$(4)) \
+ $(TOOL_$(tool)_$(1)INCS.$(3)) \
+ $(TOOL_$(tool)_$(1)INCS.$(2)) \
+ $(TOOL_$(tool)_$(1)INCS.$(5)) \
+ $(TOOL_$(tool)_$(1)INCS) \
+ $(TOOL_$(tool)_INCS.$(2).$(3).$(5)) \
+ $(TOOL_$(tool)_INCS.$(2).$(3)) \
+ $(TOOL_$(tool)_INCS.$(2).$(5)) \
+ $(TOOL_$(tool)_INCS.$(4)) \
+ $(TOOL_$(tool)_INCS.$(3)) \
+ $(TOOL_$(tool)_INCS.$(2)) \
+ $(TOOL_$(tool)_INCS.$(5)) \
+ $(TOOL_$(tool)_INCS) \
+
+$(foreach os,$(KBUILD_OSES),$(foreach arch,$(KBUILD_ARCHES),$(foreach cat,$(KBUILD_COMPILE_CATEGTORIES) \
+ ,$(eval SDK_ReorderCompilerIncs_$(cat)INCS.$(os).$(arch) = \
+ $$(call FN_SDK_ReorderCompilerIncs_GET_INCS,CXX,win,amd64,$$(bld_trg_cpu),$$(bld_type))\
+ )\
+)))
+
diff --git a/kBuild/sdks/W2K3DDK.kmk b/kBuild/sdks/W2K3DDK.kmk
new file mode 100644
index 0000000..888de5e
--- /dev/null
+++ b/kBuild/sdks/W2K3DDK.kmk
@@ -0,0 +1,81 @@
+# $Id: W2K3DDK.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows 2003 DDK, targeting $(KBUILD_TARGET).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_W2K3DDK := The Microsoft Windows 2003 DDK, targeting $(KBUILD_TARGET).
+
+# SDK Specific Properties
+ifndef PATH_SDK_W2K3DDK
+ PATH_SDK_W2K3DDK := $(wildcard $(KBUILD_DEVTOOLS_TRG)/ddkwin2k3/2*)
+ ifeq ($(PATH_SDK_W2K3DDK),)
+ PATH_SDK_W2K3DDK := $(wildcard $(KBUILD_DEVTOOLS_BLD)/ddkwin2k3/2*)
+ endif
+ ifeq ($(PATH_SDK_W2K3DDK),)
+ PATH_SDK_W2K3DDK := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/ddkwin2k3/2*)
+ endif
+ ifeq ($(PATH_SDK_W2K3DDK),)
+ PATH_SDK_W2K3DDK := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/ddkwin2k3/2*)
+ endif
+ ifeq ($(PATH_SDK_W2K3DDK),)
+ PATH_SDK_W2K3DDK := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/ddkwin2k3/2*)
+ endif
+ ifeq ($(PATH_SDK_W2K3DDK),)
+ ifneq ($(wildcard $(KBUILD_DEVTOOLS)/x86.win32/ddkwin2k3/lib/wnet/i386/*.lib),)
+ PATH_SDK_W2K3DDK := $(KBUILD_DEVTOOLS)/x86.win32/ddkwin2k3
+ endif
+ endif
+ ifneq ($(PATH_SDK_W2K3DDK),)
+ PATH_SDK_W2K3DDK := $(lastword $(sort $(PATH_SDK_W2K3DDK)))
+ else
+ $(warning kBuild: PATH_SDK_W2K3DDK couldn't be determined!)
+ PATH_SDK_W2K3DDK := $(KBUILD_DEVTOOLS)/win.x86/ddkwin2k3/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_W2K3DDK := $(PATH_SDK_W2K3DDK)
+endif
+PATH_SDK_W2K3DDK_INC ?= $(PATH_SDK_W2K3DDK)/inc
+PATH_SDK_W2K3DDK_LIB.amd64 ?= $(PATH_SDK_W2K3DDK)/lib/wnet/AMD64
+PATH_SDK_W2K3DDK_LIB.x86 ?= $(PATH_SDK_W2K3DDK)/lib/wnet/i386
+PATH_SDK_W2K3DDK_LIB ?= $(PATH_SDK_W2K3DDK_LIB.$(KBUILD_TARGET_ARCH))
+
+# General Properties used by kBuild
+SDK_W2K3DDK_DEFS.amd64 ?= _AMD64_
+SDK_W2K3DDK_DEFS.x86 ?= _X86_
+SDK_W2K3DDK_INCS ?= \
+ $(PATH_SDK_W2K3DDK_INC)/ddk \
+ $(PATH_SDK_W2K3DDK_INC)/ddk/wnet \
+ $(PATH_SDK_W2K3DDK_INC)/wnet \
+ $(PATH_SDK_W2K3DDK_INC)/ddk/wdm/wnet
+SDK_W2K3DDK_LIBPATH.amd64 ?= $(PATH_SDK_W2K3DDK_LIB.amd64)
+SDK_W2K3DDK_LIBPATH.x86 ?= $(PATH_SDK_W2K3DDK_LIB.x86)
+
diff --git a/kBuild/sdks/W2K3DDKAMD64.kmk b/kBuild/sdks/W2K3DDKAMD64.kmk
new file mode 100644
index 0000000..a9f06e7
--- /dev/null
+++ b/kBuild/sdks/W2K3DDKAMD64.kmk
@@ -0,0 +1,71 @@
+# $Id: W2K3DDKAMD64.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows 2003 DDK, targeting amd64.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_W2K3DDKAMD64 := The Microsoft Windows 2003 DDK, targeting amd64.
+
+# SDK Specific Properties
+ifndef PATH_SDK_W2K3DDKAMD64
+ PATH_SDK_W2K3DDKAMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/ddkwin2k3/2*)
+ ifeq ($(PATH_SDK_W2K3DDKAMD64),)
+ PATH_SDK_W2K3DDKAMD64 := $(PATH_SDK_W2K3DDK)
+ endif
+ ifeq ($(PATH_SDK_W2K3DDKAMD64),)
+ PATH_SDK_W2K3DDKAMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/ddkwin2k3/2*)
+ endif
+ # legacy:
+ ifeq ($(PATH_SDK_W2K3DDKAMD64),)
+ PATH_SDK_W2K3DDKAMD64 := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/ddkwin2k3/2*)
+ endif
+ ifneq ($(PATH_SDK_W2K3DDKAMD64),)
+ PATH_SDK_W2K3DDKAMD64 := $(lastword $(sort $(PATH_SDK_W2K3DDKAMD64)))
+ else
+ $(warning kBuild: PATH_SDK_W2K3DDKAMD64 couldn't be determined!)
+ PATH_SDK_W2K3DDKAMD64 := $(KBUILD_DEVTOOLS)/win.amd64/ddkwin2k3/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_W2K3DDKAMD64 := $(PATH_SDK_W2K3DDKAMD64)
+endif
+PATH_SDK_W2K3DDKAMD64_INC ?= $(PATH_SDK_W2K3DDKAMD64)/inc
+PATH_SDK_W2K3DDKAMD64_LIB ?= $(PATH_SDK_W2K3DDKAMD64)/lib/wnet/AMD64
+
+# General Properties used by kBuild
+SDK_W2K3DDKAMD64_DEFS ?= _AMD64_
+SDK_W2K3DDKAMD64_INCS ?= \
+ $(PATH_SDK_W2K3DDKAMD64_INC)/ddk \
+ $(PATH_SDK_W2K3DDKAMD64_INC)/ddk/wnet \
+ $(PATH_SDK_W2K3DDKAMD64_INC)/wnet \
+ $(PATH_SDK_W2K3DDKAMD64_INC)/ddk/wdm/wnet
+SDK_W2K3DDKAMD64_LIBPATH ?= \
+ $(PATH_SDK_W2K3DDKAMD64_LIB)
+
diff --git a/kBuild/sdks/W2K3DDKX86.kmk b/kBuild/sdks/W2K3DDKX86.kmk
new file mode 100644
index 0000000..4f4beb1
--- /dev/null
+++ b/kBuild/sdks/W2K3DDKX86.kmk
@@ -0,0 +1,74 @@
+# $Id: W2K3DDKX86.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows 2003 DDK, targeting x86.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_W2K3DDKX86 := The Microsoft Windows 2003 DDK, targeting x86.
+
+# SDK Specific Properties
+ifndef PATH_SDK_W2K3DDKX86
+ PATH_SDK_W2K3DDKX86 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/ddkwin2k3/2*)
+ ifeq ($(PATH_SDK_W2K3DDKX86),)
+ PATH_SDK_W2K3DDKX86 := $(PATH_SDK_W2K3DDK)
+ endif
+ ifeq ($(PATH_SDK_W2K3DDKX86),)
+ PATH_SDK_W2K3DDKX86 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/ddkwin2k3/2*)
+ endif
+ # legacy:
+ ifeq ($(PATH_SDK_W2K3DDKX86),)
+ PATH_SDK_W2K3DDKX86 := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/ddkwin2k3/2*)
+ endif
+ ifeq ($(PATH_SDK_W2K3DDKX86),)
+ PATH_SDK_W2K3DDKX86 := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/ddkwin2k3)
+ endif
+ ifneq ($(PATH_SDK_W2K3DDKX86),)
+ PATH_SDK_W2K3DDKX86 := $(lastword $(sort $(PATH_SDK_W2K3DDKX86)))
+ else
+ $(warning kBuild: PATH_SDK_W2K3DDKX86 couldn't be determined!)
+ PATH_SDK_W2K3DDKX86 := $(KBUILD_DEVTOOLS)/x86.win/ddkwin2k3/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_W2K3DDKX86 := $(PATH_SDK_W2K3DDKX86)
+endif
+PATH_SDK_W2K3DDKX86_INC ?= $(PATH_SDK_W2K3DDKX86)/inc
+PATH_SDK_W2K3DDKX86_LIB ?= $(PATH_SDK_W2K3DDKX86)/lib/wnet/i386
+
+# General Properties used by kBuild
+SDK_W2K3DDKX86_DEFS ?= _X86_
+SDK_W2K3DDKX86_INCS ?= \
+ $(PATH_SDK_W2K3DDKX86_INC)/ddk \
+ $(PATH_SDK_W2K3DDKX86_INC)/ddk/wnet \
+ $(PATH_SDK_W2K3DDKX86_INC)/wnet \
+ $(PATH_SDK_W2K3DDKX86_INC)/ddk/wdm/wnet
+SDK_W2K3DDKX86_LIBPATH ?= \
+ $(PATH_SDK_W2K3DDKX86_LIB)
+
diff --git a/kBuild/sdks/W32API.kmk b/kBuild/sdks/W32API.kmk
new file mode 100644
index 0000000..20c0a19
--- /dev/null
+++ b/kBuild/sdks/W32API.kmk
@@ -0,0 +1,58 @@
+# $Id: W32API.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - w32api (MinGW), targeting x86.
+#
+
+#
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_W32API := w32api (MinGW), targeting x86.
+
+# SDK Specific Properties
+ifndef PATH_SDK_W32API
+ PATH_SDK_W32API := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/w32api/v*)
+ ifeq ($(PATH_SDK_W32API),)
+ PATH_SDK_W32API := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/w32api/v*)
+ endif
+ ifneq ($(PATH_SDK_W32API),)
+ PATH_SDK_W32API := $(lastword $(sort $(PATH_SDK_W32API)))
+ else
+ $(warning kBuild: PATH_SDK_W32API couldn't be determined!)
+ PATH_SDK_W32API := $(KBUILD_DEVTOOLS)/x86.win/w32api/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_W32API := $(PATH_SDK_W32API)
+endif
+PATH_SDK_W32API_INC ?= $(PATH_SDK_W32API)/include
+PATH_SDK_W32API_LIB ?= $(PATH_SDK_W32API)/lib
+
+# General Properties used by kBuild
+SDK_W32API_INCS ?= $(PATH_SDK_W32API_INC)
+SDK_W32API_LIBPATH ?= $(PATH_SDK_W32API_LIB)
+
diff --git a/kBuild/sdks/WIN32SDK.kmk b/kBuild/sdks/WIN32SDK.kmk
new file mode 100644
index 0000000..9f9cf20
--- /dev/null
+++ b/kBuild/sdks/WIN32SDK.kmk
@@ -0,0 +1,93 @@
+# $Id: WIN32SDK.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Windows Platform SDK, targeting x86.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WIN32SDK := The Windows Platform SDK, targeting x86.
+
+# SDK Specific Properties
+ifndef PATH_SDK_WIN32SDK
+ PATH_SDK_WIN32SDK := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/sdk/2*)
+ ifeq ($(PATH_SDK_WIN32SDK),)
+ PATH_SDK_WIN32SDK := $(PATH_SDK_WINPSDK)
+ endif
+ ifeq ($(PATH_SDK_WIN32SDK),)
+ PATH_SDK_WIN32SDK := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/sdk/2*)
+ endif
+ ifeq ($(PATH_SDK_WIN32SDK),)
+ PATH_SDK_WIN32SDK := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/sdk/2*)
+ endif
+ ifneq ($(PATH_SDK_WIN32SDK),)
+ PATH_SDK_WIN32SDK := $(lastword $(sort $(PATH_SDK_WIN32SDK)))
+ else
+ $(warning kBuild: PATH_SDK_WIN32SDK couldn't be determined!)
+ PATH_SDK_WIN32SDK := $(KBUILD_DEVTOOLS)/win.x86/sdk/not/found
+ endif
+endif
+ifndef PATH_SDK_WIN32SDK_INC
+PATH_SDK_WIN32SDK_INC := $(firstword $(wildcard $(PATH_SDK_WIN32SDK)/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]) $(PATH_SDK_WIN32SDK)/Include)
+endif
+ifndef PATH_SDK_WIN32SDK_LIB
+PATH_SDK_WIN32SDK_LIB := $(firstword $(wildcard $(PATH_SDK_WIN32SDK)/[Ll][Ii][Bb]) $(PATH_SDK_WIN32SDK)/Lib)
+endif
+ifndef PATH_SDK_WIN32SDK_BIN
+PATH_SDK_WIN32SDK_BIN := $(firstword $(wildcard $(PATH_SDK_WIN32SDK)/[Bb][Ii][Nn]) $(PATH_SDK_WIN32SDK)/Bin)
+endif
+
+
+# General Properties used by kBuild
+SDK_WIN32SDK_INCS ?= $(PATH_SDK_WIN32SDK_INC)
+SDK_WIN32SDK_LIBPATH ?= $(PATH_SDK_WIN32SDK_LIB)
+SDK_WIN32SDK_LIBS ?= \
+ $(PATH_SDK_WIN32SDK_LIB)/Kernel32.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/User32.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/Gdi32.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/AdvAPI32.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/Shell32.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/ShLwApi.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/SetupAPI.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/Uuid.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/Version.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/WS2_32.Lib \
+ \
+ $(PATH_SDK_WIN32SDK_LIB)/Ole32.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/OleAut32.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/OleDlg.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/RpcRT4.Lib \
+ \
+ $(PATH_SDK_WIN32SDK_LIB)/DbgHelp.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/ImageHlp.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/IPHlpApi.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/ComCtl32.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/ComDlg32.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/WinSpool.Lib \
+ $(PATH_SDK_WIN32SDK_LIB)/WinMM.Lib \
+
diff --git a/kBuild/sdks/WIN32SDK2002.kmk b/kBuild/sdks/WIN32SDK2002.kmk
new file mode 100644
index 0000000..148e3a1
--- /dev/null
+++ b/kBuild/sdks/WIN32SDK2002.kmk
@@ -0,0 +1,90 @@
+# $Id: WIN32SDK2002.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - Windows Platform SDK (from ~2002), targeting x86.
+# Differs in that it has ddraw.lib and dxguid.lib.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+
+SDK_WIN32SDK2002 := Windows Platform SDK (from ~2002), targeting x86. \
+ Differs in that it has ddraw.lib and dxguid.lib.
+
+# SDK Specific Properties
+ifndef PATH_SDK_WIN32SDK2002
+ PATH_SDK_WIN32SDK2002 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/sdk/2002*)
+ ifeq ($(PATH_SDK_WIN32SDK2002),)
+ PATH_SDK_WIN32SDK2002 := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/sdk/2002*)
+ endif
+ ifeq ($(PATH_SDK_WIN32SDK2002),)
+ PATH_SDK_WIN32SDK2002 := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/sdk2002*)
+ endif
+ ifneq ($(PATH_SDK_WIN32SDK2002),)
+ PATH_SDK_WIN32SDK2002 := $(lastword $(sort $(PATH_SDK_WIN32SDK2002)))
+ else
+ $(warning kBuild: PATH_SDK_WIN32SDK2002 couldn't be determined!)
+ PATH_SDK_WIN32SDK2002 := $(KBUILD_DEVTOOLS)/win.x86/sdk/2002/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_WIN32SDK2002 := $(PATH_SDK_WIN32SDK2002)
+endif
+PATH_SDK_WIN32SDK2002_INC ?= $(PATH_SDK_WIN32SDK2002)/include
+PATH_SDK_WIN32SDK2002_LIB ?= $(PATH_SDK_WIN32SDK2002)/lib
+
+# General Properties used by kBuild
+SDK_WIN32SDK2002_INCS ?= $(PATH_SDK_WIN32SDK2002_INC)
+SDK_WIN32SDK2002_LIBPATH ?= $(PATH_SDK_WIN32SDK2002_LIB)
+SDK_WIN32SDK2002_LIBS ?= \
+ $(PATH_SDK_WIN32SDK2002_LIB)/Kernel32.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/User32.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/Gdi32.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/AdvAPI32.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/Shell32.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/ShLwApi.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/SetupAPI.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/Uuid.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/Version.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/WS2_32.Lib \
+ \
+ $(PATH_SDK_WIN32SDK2002_LIB)/Ole32.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/OleAut32.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/OleDlg.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/RpcRT4.Lib \
+ \
+ $(PATH_SDK_WIN32SDK2002_LIB)/DbgHelp.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/ImageHlp.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/IPHlpApi.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/ddraw.lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/dxguid.lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/ComCtl32.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/ComDlg32.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/WinSpool.Lib \
+ $(PATH_SDK_WIN32SDK2002_LIB)/WinMM.Lib
+
diff --git a/kBuild/sdks/WIN64SDK.kmk b/kBuild/sdks/WIN64SDK.kmk
new file mode 100644
index 0000000..4c3f51d
--- /dev/null
+++ b/kBuild/sdks/WIN64SDK.kmk
@@ -0,0 +1,99 @@
+# $Id: WIN64SDK.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Windows Platform SDK, targeting AMD64.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+
+SDK_WIN64SDK := The Windows Platform SDK, targeting AMD64.
+
+# SDK Specific Properties
+ifndef PATH_SDK_WIN64SDK
+ PATH_SDK_WIN64SDK := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/sdk/2*)
+ ifeq ($(PATH_SDK_WIN64SDK),)
+ PATH_SDK_WIN64SDK := $(PATH_SDK_WINPSDK)
+ endif
+ ifeq ($(PATH_SDK_WIN64SDK),)
+ PATH_SDK_WIN64SDK := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/sdk/2*)
+ endif
+ ifneq ($(PATH_SDK_WIN64SDK),)
+ PATH_SDK_WIN64SDK := $(lastword $(sort $(PATH_SDK_WIN64SDK)))
+ else
+ $(warning kBuild: PATH_SDK_WIN64SDK couldn't be determined!)
+ PATH_SDK_WIN64SDK := $(KBUILD_DEVTOOLS)/win.amd64/sdk/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_WIN64SDK := $(PATH_SDK_WIN64SDK)
+endif
+ifndef PATH_SDK_WIN64SDK_INC
+PATH_SDK_WIN64SDK_INC := $(firstword $(wildcard $(PATH_SDK_WIN64SDK)/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]) $(PATH_SDK_WIN64SDK)/Include)
+endif
+
+ifndef PATH_SDK_WIN64SDK_LIB
+PATH_SDK_WIN64SDK_LIB := $(firstword $(wildcard $(PATH_SDK_WIN64SDK)/[Ll][Ii][Bb]/[Aa][Mm][Dd]64 $(PATH_SDK_WIN64SDK)/[Ll][Ii][Bb]/[xX]64) $(PATH_SDK_WIN64SDK)/Lib/AMD64)
+endif
+
+ifndef PATH_SDK_WIN64SDK_BIN
+PATH_SDK_WIN64SDK_BIN := $(firstword $(wildcard $(PATH_SDK_WIN64SDK)/[Bb][Ii][Nn]) $(PATH_SDK_WIN64SDK)/Bin)
+endif
+ifndef PATH_SDK_WIN64SDK_BIN_AMD64
+PATH_SDK_WIN64SDK_BIN_AMD64 := $(firstword $(wildcard $(PATH_SDK_WIN64SDK_BIN)/[Ww][Ii][Nn]64/[Xx]86/[Aa][Mm][Dd]64 $(PATH_SDK_WIN64SDK_BIN)/[Ww][Ii][Nn]64/[Xx]86) $(PATH_SDK_WIN64SDK_BIN)/win64/AMD64)
+endif
+
+
+# General Properties used by kBuild
+SDK_WIN64SDK_INCS ?= $(PATH_SDK_WIN64SDK_INC)
+SDK_WIN64SDK_LIBPATH ?= $(PATH_SDK_WIN64SDK_LIB)
+SDK_WIN64SDK_LIBS ?= \
+ $(PATH_SDK_WIN64SDK_LIB)/Kernel32.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/User32.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/Gdi32.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/AdvAPI32.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/Shell32.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/ShLwApi.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/SetupAPI.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/Uuid.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/Version.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/WS2_32.Lib \
+ \
+ $(PATH_SDK_WIN64SDK_LIB)/Ole32.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/OleAut32.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/OleDlg.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/RpcRT4.Lib \
+ \
+ $(PATH_SDK_WIN64SDK_LIB)/DbgHelp.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/ImageHlp.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/IPHlpApi.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/ComCtl32.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/ComDlg32.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/WinSpool.Lib \
+ $(PATH_SDK_WIN64SDK_LIB)/WinMM.Lib
+
diff --git a/kBuild/sdks/WINDDK.kmk b/kBuild/sdks/WINDDK.kmk
new file mode 100644
index 0000000..a8e9163
--- /dev/null
+++ b/kBuild/sdks/WINDDK.kmk
@@ -0,0 +1,133 @@
+# $Id: WINDDK.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows Vista and Server 2008 DDKs.
+# Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINDDK := The Microsoft Windows Vista and Server 2008 DDKs. \
+ Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
+
+# SDK Specific Properties
+ifndef PATH_SDK_WINDDK
+ PATH_SDK_WINDDK := $(wildcard $(KBUILD_DEVTOOLS_TRG)/ddk/6*)
+ ifeq ($(PATH_SDK_WINDDK),)
+ PATH_SDK_WINDDK := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/ddk/6*)
+ endif
+ ifeq ($(PATH_SDK_WINDDK),)
+ PATH_SDK_WINDDK := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/ddk/6*)
+ endif
+ ifeq ($(PATH_SDK_WINDDK),)
+ ifeq ($(KBUILD_HOST),win)
+ PATH_SDK_WINDDK := $(wildcard C:/WinDDK/6*)
+ endif
+ endif
+ ifneq ($(PATH_SDK_WINDDK),)
+ PATH_SDK_WINDDK := $(lastword $(sort $(PATH_SDK_WINDDK)))
+ else
+ $(warning kBuild: PATH_SDK_WINDDK couldn't be determined!)
+ PATH_SDK_WINDDK := $(KBUILD_DEVTOOLS)/win.x86/ddk/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_WINDDK := $(PATH_SDK_WINDDK)
+endif
+
+PATH_SDK_WINDDK_INC ?= $(PATH_SDK_WINDDK)/inc
+PATH_SDK_WINDDK_INC_API ?= $(PATH_SDK_WINDDK_INC)/api
+PATH_SDK_WINDDK_INC_CRT ?= $(PATH_SDK_WINDDK_INC)/crt
+PATH_SDK_WINDDK_INC_DDK ?= $(PATH_SDK_WINDDK_INC)/ddk
+
+PATH_SDK_WINDDK_LIB_ROOT ?= $(PATH_SDK_WINDDK)/lib
+PATH_SDK_WINDDK_LIB_WLH_ROOT ?= $(PATH_SDK_WINDDK_LIB_ROOT)/wlh
+PATH_SDK_WINDDK_LIB_WNET_ROOT ?= $(PATH_SDK_WINDDK_LIB_ROOT)/wnet
+PATH_SDK_WINDDK_LIB_WXP_ROOT ?= $(PATH_SDK_WINDDK_LIB_ROOT)/wxp
+PATH_SDK_WINDDK_LIB_W2K_ROOT ?= $(PATH_SDK_WINDDK_LIB_ROOT)/w2k
+PATH_SDK_WINDDK_LIB_WDF_ROOT ?= $(PATH_SDK_WINDDK_LIB_ROOT)/w2k
+
+PATH_SDK_WINDDK_LIB_WLH.amd64 ?= $(PATH_SDK_WINDDK_LIB_WLH_ROOT)/amd64
+PATH_SDK_WINDDK_LIB_WLH.ia64 ?= $(PATH_SDK_WINDDK_LIB_WLH_ROOT)/ia64
+PATH_SDK_WINDDK_LIB_WLH.x86 ?= $(PATH_SDK_WINDDK_LIB_WLH_ROOT)/i386
+PATH_SDK_WINDDK_LIB_WLH ?= $(PATH_SDK_WINDDK_LIB_WLH.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINDDK_LIB_WNET.amd64?= $(PATH_SDK_WINDDK_LIB_WNET_ROOT)/amd64
+PATH_SDK_WINDDK_LIB_WNET.ia64 ?= $(PATH_SDK_WINDDK_LIB_WNET_ROOT)/ia64
+PATH_SDK_WINDDK_LIB_WNET.x86 ?= $(PATH_SDK_WINDDK_LIB_WNET_ROOT)/i386
+PATH_SDK_WINDDK_LIB_WNET ?= $(PATH_SDK_WINDDK_LIB_WNET.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINDDK_LIB_WXP.x86 ?= $(PATH_SDK_WINDDK_LIB_WXP_ROOT)/i386
+PATH_SDK_WINDDK_LIB_WXP ?= $(PATH_SDK_WINDDK_LIB_WXP.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINDDK_LIB_W2K.x86 ?= $(PATH_SDK_WINDDK_LIB_W2K_ROOT)/i386
+PATH_SDK_WINDDK_LIB_W2K ?= $(PATH_SDK_WINDDK_LIB_W2K.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINDDK_LIB.amd64 ?= $(PATH_SDK_WINDDK_LIB_WLH.amd64)
+PATH_SDK_WINDDK_LIB.ia64 ?= $(PATH_SDK_WINDDK_LIB_WLH.ia64)
+PATH_SDK_WINDDK_LIB.x86 ?= $(PATH_SDK_WINDDK_LIB_WLH.x86)
+PATH_SDK_WINDDK_LIB ?= $(PATH_SDK_WINDDK_LIB.$(KBUILD_TARGET_ARCH))
+
+# General Properties used by kBuild
+SDK_WINDDK_DEFS.amd64 ?= _AMD64_ AMD64 _WIN64
+SDK_WINDDK_DEFS.ia64 ?= _IA64_=1 IA64=1 _WIN64 _MSC_EXTENSIONS
+SDK_WINDDK_DEFS.x86 ?= _X86_=1 i386=1 STD_CALL
+SDK_WINDDK_INCS ?= \
+ $(PATH_SDK_WINDDK_INC_API) \
+ $(PATH_SDK_WINDDK_INC_DDK)
+# The compiler tool(s) will have to select the appropriate crt includes.
+SDK_WINDDK_LIBPATH.amd64 ?= $(PATH_SDK_WINDDK_LIB_WLH.amd64)
+SDK_WINDDK_LIBPATH.ia64 ?= $(PATH_SDK_WINDDK_LIB_WLH.ia64)
+SDK_WINDDK_LIBPATH.x86 ?= $(PATH_SDK_WINDDK_LIB_WLH.x86)
+
+#
+# CDFS defines for the various build environments. Just to give an idea what
+# you should put in your templates and target DEFS.
+#
+
+# Vista / Server Longhorn x64 Free: NT_INST=0 WIN32=100 _WIN32_WINNT=0x0600 WINVER=0x0600 _WIN32_IE=0x0700 NTDDI_VERSION=0x06000000 KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005 WIN32_LEAN_AND_MEAN=1 CONDITION_HANDLING=1 DEVL=1 NDEBUG __BUILDMACHINE__=WinDDK _DLL
+# Vista / Server Longhorn ia64 Free: NT_INST=0 WIN32=100 _WIN32_WINNT=0x0600 WINVER=0x0600 _WIN32_IE=0x0700 NTDDI_VERSION=0x06000000 KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005 WIN32_LEAN_AND_MEAN=1 CONDITION_HANDLING=1 DEVL=1 NDEBUG __BUILDMACHINE__=WinDDK _DLL NO_HW_DETECT _MSC_EXTENSIONS _MERCED_A0_=1 FPO=0
+# Vista / Server Longhorn x86 Free: NT_INST=0 WIN32=100 _WIN32_WINNT=0x0600 WINVER=0x0600 _WIN32_IE=0x0700 NTDDI_VERSION=0x06000000 KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005 WIN32_LEAN_AND_MEAN=1 CONDITION_HANDLING=1 DEVL=1 NDEBUG __BUILDMACHINE__=WinDDK _DLL STD_CALL FPO=0
+# Windows Server 2003 amd64 Free: NT_INST=0 WIN32=100 _WIN32_WINNT=0x0502 WINVER=0x0502 _WIN32_IE=0x0603 NTDDI_VERSION=0x05020100 KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005 WIN32_LEAN_AND_MEAN=1 CONDITION_HANDLING=1 DEVL=1 NDEBUG __BUILDMACHINE__=WinDDK _DLL
+# Windows Server 2003 ia64 Free: NT_INST=0 WIN32=100 _WIN32_WINNT=0x0502 WINVER=0x0502 _WIN32_IE=0x0603 NTDDI_VERSION=0x05020100 KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005 WIN32_LEAN_AND_MEAN=1 CONDITION_HANDLING=1 DEVL=1 NDEBUG __BUILDMACHINE__=WinDDK _DLL NO_HW_DETECT _MSC_EXTENSIONS _MERCED_A0_=1 FPO=0
+# Windows Server 2003 x86 Free: NT_INST=0 WIN32=100 _WIN32_WINNT=0x0502 WINVER=0x0502 _WIN32_IE=0x0603 NTDDI_VERSION=0x05020100 KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005 WIN32_LEAN_AND_MEAN=1 CONDITION_HANDLING=1 DEVL=1 NDEBUG __BUILDMACHINE__=WinDDK _DLL STD_CALL FPO=0
+# Windows XP Free: NT_INST=0 WIN32=100 _WIN32_WINNT=0x0501 WINVER=0x0501 _WIN32_IE=0x0603 NTDDI_VERSION=0x05010200 KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005 WIN32_LEAN_AND_MEAN=1 CONDITION_HANDLING=1 DEVL=1 NDEBUG __BUILDMACHINE__=WinDDK _DLL STD_CALL FPO=0
+# Windows 2000 Free: NT_INST=0 WIN32=100 _WIN32_WINNT=0x0500 WINVER=0x0500 _WIN32_IE=0x0501 NTDDI_VERSION=0x05000400 KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005 WIN32_LEAN_AND_MEAN=1 CONDITION_HANDLING=1 DEVL=1 NDEBUG __BUILDMACHINE__=WinDDK _DLL STD_CALL FPO=0
+# Windows 2000 Checked: NT_INST=0 WIN32=100 _WIN32_WINNT=0x0500 WINVER=0x0500 _WIN32_IE=0x0501 NTDDI_VERSION=0x05000400 KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005 WIN32_LEAN_AND_MEAN=1 CONDITION_HANDLING=1 DEVL=1 NDEBUG __BUILDMACHINE__=WinDDK _DLL STD_CALL FPO=0 MSC_NOOPT
+
+# Some notes about the defines:
+# NTDDI_VERSION indicates the target NT version, looks kind of important to get right.
+# _WIN32_WINNT, WINVER and _WIN32_IE are used by a bunch of headers for selecting features.
+# WIN32_LEAN_AND_MEAN is used by api\WINDOWS.H to drop a bunch of includes.
+# WIN32 is just used for some ifdef'ing by a handful headers.
+# __BUILDMACHINE__ is used by api\common.ver (for resources it seems).
+# STD_CALL is used by ddk\stdcall.inc (masm).
+# DEVL governs the IF_NTOS_DEBUG() macro in ddk\wdm.h.
+# NDEBUG is used by crt\assert.h dictated by the standards.
+# CONDITION_HANDLING, FPO, KMDF_MAJOR_VERSION, KMDF_MINOR_VERSION, MSC_NOOPT and NT_INST are not referenced in any headers.
+
diff --git a/kBuild/sdks/WINDDK71.kmk b/kBuild/sdks/WINDDK71.kmk
new file mode 100644
index 0000000..5ac75ca
--- /dev/null
+++ b/kBuild/sdks/WINDDK71.kmk
@@ -0,0 +1,107 @@
+# $Id: WINDDK71.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows 7 DDK, v7.1.
+# Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINDDK71 := The Microsoft Windows 7 DDK, v7.1. \
+ Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
+
+# SDK Specific Properties
+ifndef PATH_SDK_WINDDK71
+ PATH_SDK_WINDDK71 := $(wildcard $(KBUILD_DEVTOOLS_TRG)/ddk/7600.16385.1*)
+ ifeq ($(PATH_SDK_WINDDK71),)
+ PATH_SDK_WINDDK71 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/ddk/7600.16385.1*)
+ endif
+ ifeq ($(PATH_SDK_WINDDK71),)
+ PATH_SDK_WINDDK71 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/ddk/7600.16385.1*)
+ endif
+ ifeq ($(PATH_SDK_WINDDK71),)
+ ifeq ($(KBUILD_HOST),win)
+ PATH_SDK_WINDDK71 := $(wildcard C:/WinDDK/7600.16385.1*)
+ endif
+ endif
+ ifneq ($(PATH_SDK_WINDDK71),)
+ PATH_SDK_WINDDK71 := $(lastword $(sort $(PATH_SDK_WINDDK71)))
+ else
+ $(warning kBuild: PATH_SDK_WINDDK71 couldn't be determined!)
+ PATH_SDK_WINDDK71 := $(KBUILD_DEVTOOLS)/win.x86/ddk/7600.16385.1-not-found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_WINDDK71 := $(PATH_SDK_WINDDK71)
+endif
+
+PATH_SDK_WINDDK71_INC ?= $(PATH_SDK_WINDDK71)/inc
+PATH_SDK_WINDDK71_INC_API ?= $(PATH_SDK_WINDDK71_INC)/api
+PATH_SDK_WINDDK71_INC_CRT ?= $(PATH_SDK_WINDDK71_INC)/crt
+PATH_SDK_WINDDK71_INC_DDK ?= $(PATH_SDK_WINDDK71_INC)/ddk
+
+PATH_SDK_WINDDK71_LIB_ROOT ?= $(PATH_SDK_WINDDK71)/lib
+PATH_SDK_WINDDK71_LIB_WLH_ROOT ?= $(PATH_SDK_WINDDK71_LIB_ROOT)/wlh
+PATH_SDK_WINDDK71_LIB_WNET_ROOT ?= $(PATH_SDK_WINDDK71_LIB_ROOT)/wnet
+PATH_SDK_WINDDK71_LIB_WXP_ROOT ?= $(PATH_SDK_WINDDK71_LIB_ROOT)/wxp
+PATH_SDK_WINDDK71_LIB_W2K_ROOT ?= $(PATH_SDK_WINDDK71_LIB_ROOT)/w2k
+PATH_SDK_WINDDK71_LIB_WDF_ROOT ?= $(PATH_SDK_WINDDK71_LIB_ROOT)/w2k
+
+PATH_SDK_WINDDK71_LIB_WLH.amd64 ?= $(PATH_SDK_WINDDK71_LIB_WLH_ROOT)/amd64
+PATH_SDK_WINDDK71_LIB_WLH.ia64 ?= $(PATH_SDK_WINDDK71_LIB_WLH_ROOT)/ia64
+PATH_SDK_WINDDK71_LIB_WLH.x86 ?= $(PATH_SDK_WINDDK71_LIB_WLH_ROOT)/i386
+PATH_SDK_WINDDK71_LIB_WLH ?= $(PATH_SDK_WINDDK71_LIB_WLH.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINDDK71_LIB_WNET.amd64?= $(PATH_SDK_WINDDK71_LIB_WNET_ROOT)/amd64
+PATH_SDK_WINDDK71_LIB_WNET.ia64 ?= $(PATH_SDK_WINDDK71_LIB_WNET_ROOT)/ia64
+PATH_SDK_WINDDK71_LIB_WNET.x86 ?= $(PATH_SDK_WINDDK71_LIB_WNET_ROOT)/i386
+PATH_SDK_WINDDK71_LIB_WNET ?= $(PATH_SDK_WINDDK71_LIB_WNET.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINDDK71_LIB_WXP.x86 ?= $(PATH_SDK_WINDDK71_LIB_WXP_ROOT)/i386
+PATH_SDK_WINDDK71_LIB_WXP ?= $(PATH_SDK_WINDDK71_LIB_WXP.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINDDK71_LIB_W2K.x86 ?= $(PATH_SDK_WINDDK71_LIB_W2K_ROOT)/i386
+PATH_SDK_WINDDK71_LIB_W2K ?= $(PATH_SDK_WINDDK71_LIB_W2K.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINDDK71_LIB.amd64 ?= $(PATH_SDK_WINDDK71_LIB_WLH.amd64)
+PATH_SDK_WINDDK71_LIB.ia64 ?= $(PATH_SDK_WINDDK71_LIB_WLH.ia64)
+PATH_SDK_WINDDK71_LIB.x86 ?= $(PATH_SDK_WINDDK71_LIB_WLH.x86)
+PATH_SDK_WINDDK71_LIB ?= $(PATH_SDK_WINDDK71_LIB.$(KBUILD_TARGET_ARCH))
+
+# General Properties used by kBuild
+SDK_WINDDK71_DEFS.amd64 ?= _AMD64_ AMD64 _WIN64
+SDK_WINDDK71_DEFS.ia64 ?= _IA64_=1 IA64=1 _WIN64 _MSC_EXTENSIONS
+SDK_WINDDK71_DEFS.x86 ?= _X86_=1 i386=1 STD_CALL
+SDK_WINDDK71_INCS ?= \
+ $(PATH_SDK_WINDDK71_INC_API) \
+ $(PATH_SDK_WINDDK71_INC_DDK)
+# The compiler tool(s) will have to select the appropriate crt includes.
+SDK_WINDDK71_LIBPATH.amd64 ?= $(PATH_SDK_WINDDK71_LIB_WLH.amd64)
+SDK_WINDDK71_LIBPATH.ia64 ?= $(PATH_SDK_WINDDK71_LIB_WLH.ia64)
+SDK_WINDDK71_LIBPATH.x86 ?= $(PATH_SDK_WINDDK71_LIB_WLH.x86)
+
diff --git a/kBuild/sdks/WINDDK71WLH.kmk b/kBuild/sdks/WINDDK71WLH.kmk
new file mode 100644
index 0000000..7b29885
--- /dev/null
+++ b/kBuild/sdks/WINDDK71WLH.kmk
@@ -0,0 +1,47 @@
+# $Id: WINDDK71WLH.kmk 3121 2017-10-31 10:58:59Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows 7 DDKs, v7.1, Targeting Vista and 2008 (KBUILD_TARGET_ARCH).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINDDK71WLH := The Microsoft Windows 7 DDKs, v7.1, Targeting Vista and 2008 (KBUILD_TARGET_ARCH).
+SDK_WINDDK71WLH_EXTENDS = WINDDK71
+SDK_WINDDK71WLH_DEFS ?= WIN32=100 _WIN32_WINNT=0x0600 WINVER=0x0600 _WIN32_IE=0x0700 NTDDI_VERSION=0x06000000 KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005
+SDK_WINDDK71WLH_LIBPATH.amd64 ?= $(PATH_SDK_WINDDK71_LIB_WLH.amd64)
+SDK_WINDDK71WLH_LIBPATH.ia64 ?= $(PATH_SDK_WINDDK71_LIB_WLH.ia64)
+SDK_WINDDK71WLH_LIBPATH.x86 ?= $(PATH_SDK_WINDDK71_LIB_WLH.x86)
+
+# SDK Specific Properties.
+# Note! extends the WINDDK71 sdk, so use those variables where ever possible
+PATH_SDK_WINDDK71WLH_LIB.amd64?= $(PATH_SDK_WINDDK71_LIB_WLH.amd64)
+PATH_SDK_WINDDK71WLH_LIB.ia64 ?= $(PATH_SDK_WINDDK71_LIB_WLH.ia64)
+PATH_SDK_WINDDK71WLH_LIB.x86 ?= $(PATH_SDK_WINDDK71_LIB_WLH.x86)
+PATH_SDK_WINDDK71WLH_LIB ?= $(PATH_SDK_WINDDK71WLH_LIB.$(KBUILD_TARGET_ARCH))
+
diff --git a/kBuild/sdks/WINDDK71WNET.kmk b/kBuild/sdks/WINDDK71WNET.kmk
new file mode 100644
index 0000000..2dbde56
--- /dev/null
+++ b/kBuild/sdks/WINDDK71WNET.kmk
@@ -0,0 +1,47 @@
+# $Id: WINDDK71WNET.kmk 3121 2017-10-31 10:58:59Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows 7 DDKs, v7.1, Targeting Windows Server 2003 (KBUILD_TARGET_ARCH).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINDDK71WNET := The Microsoft Windows 7 DDKs, v7.1, Targeting Windows Server 2003 (KBUILD_TARGET_ARCH).
+SDK_WINDDK71WNET_EXTENDS = WINDDK71
+SDK_WINDDK71WNET_DEFS ?= WIN32=100 _WIN32_WINNT=0x0502 WINVER=0x0502 _WIN32_IE=0x0603 NTDDI_VERSION=0x05020100
+SDK_WINDDK71WNET_LIBPATH.amd64 ?= $(PATH_SDK_WINDDK71_LIB_WNET.amd64)
+SDK_WINDDK71WNET_LIBPATH.ia64 ?= $(PATH_SDK_WINDDK71_LIB_WNET.ia64)
+SDK_WINDDK71WNET_LIBPATH.x86 ?= $(PATH_SDK_WINDDK71_LIB_WNET.x86)
+
+# SDK Specific Properties.
+# Note! extends the WINDDK71 sdk, so use those variables where ever possible
+PATH_SDK_WINDDK71WNET_LIB.amd64?= $(PATH_SDK_WINDDK71_LIB_WNET.amd64)
+PATH_SDK_WINDDK71WNET_LIB.ia64 ?= $(PATH_SDK_WINDDK71_LIB_WNET.ia64)
+PATH_SDK_WINDDK71WNET_LIB.x86 ?= $(PATH_SDK_WINDDK71_LIB_WNET.x86)
+PATH_SDK_WINDDK71WNET_LIB ?= $(PATH_SDK_WINDDK71WNET_LIB.$(KBUILD_TARGET_ARCH))
+
diff --git a/kBuild/sdks/WINDDK71WXP.kmk b/kBuild/sdks/WINDDK71WXP.kmk
new file mode 100644
index 0000000..61814a2
--- /dev/null
+++ b/kBuild/sdks/WINDDK71WXP.kmk
@@ -0,0 +1,43 @@
+# $Id: WINDDK71WXP.kmk 3121 2017-10-31 10:58:59Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows 7 DDK, v7.1, Targeting Windows XP (x86).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINDDK71WXP := The Microsoft Windows 7 DDK, v7.1, Targeting Windows XP (x86).
+SDK_WINDDK71WXP_EXTENDS = WINDDK71
+SDK_WINDDK71WXP_DEFS ?= WIN32=100 _WIN32_WINNT=0x0501 WINVER=0x0501 _WIN32_IE=0x0603 NTDDI_VERSION=0x05010200
+SDK_WINDDK71WXP_LIBPATH.x86 ?= $(PATH_SDK_WINDDK71_LIB_WXP.x86)
+
+# SDK Specific Properties.
+# Note! extends the WINDDK71 sdk, so use those variables where ever possible
+PATH_SDK_WINDDK71WXP_LIB.x86 ?= $(PATH_SDK_WINDDK71_LIB_WXP.x86)
+PATH_SDK_WINDDK71WXP_LIB ?= $(PATH_SDK_WINDDK71WXP_LIB.x86)
+
diff --git a/kBuild/sdks/WINDDK80.kmk b/kBuild/sdks/WINDDK80.kmk
new file mode 100644
index 0000000..3fecd3b
--- /dev/null
+++ b/kBuild/sdks/WINDDK80.kmk
@@ -0,0 +1,98 @@
+# $Id: WINDDK80.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows 8 DDK.
+# Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINDDK80 := The Microsoft Windows 8 DDK. \
+ Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
+
+# SDK Specific Properties
+ifndef PATH_SDK_WINDDK80
+ PATH_SDK_WINDDK80 := $(wildcard $(KBUILD_DEVTOOLS_TRG)/ddk/v8*)
+ ifeq ($(PATH_SDK_WINDDK80),)
+ PATH_SDK_WINDDK80 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/ddk/v8*)
+ endif
+ ifeq ($(PATH_SDK_WINDDK80),)
+ PATH_SDK_WINDDK80 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/ddk/v8*)
+ endif
+ ifneq ($(PATH_SDK_WINDDK80),)
+ PATH_SDK_WINDDK80 := $(lastword $(sort $(PATH_SDK_WINDDK80)))
+ else
+ $(warning kBuild: PATH_SDK_WINDDK80 couldn't be determined!)
+ PATH_SDK_WINDDK80 := $(KBUILD_DEVTOOLS)/win.x86/ddk/v8.0/not/found
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_WINDDK80 := $(PATH_SDK_WINDDK80)
+endif
+
+PATH_SDK_WINDDK80_INC ?= $(PATH_SDK_WINDDK80)/Include
+PATH_SDK_WINDDK80_INC_UM ?= $(PATH_SDK_WINDDK80_INC)/um
+PATH_SDK_WINDDK80_INC_KM ?= $(PATH_SDK_WINDDK80_INC)/km
+PATH_SDK_WINDDK80_INC_KM_CRT ?= $(PATH_SDK_WINDDK80_INC_KM)/crt
+PATH_SDK_WINDDK80_INC_SHARED ?= $(PATH_SDK_WINDDK80_INC)/Shared
+
+PATH_SDK_WINDDK80_LIB_ROOT ?= $(PATH_SDK_WINDDK80)/Lib
+PATH_SDK_WINDDK80_LIB_W8_ROOT ?= $(PATH_SDK_WINDDK80_LIB_ROOT)/win8
+PATH_SDK_WINDDK80_LIB_W7_ROOT ?= $(PATH_SDK_WINDDK80_LIB_ROOT)/win7
+PATH_SDK_WINDDK80_LIB_WLH_ROOT ?= $(PATH_SDK_WINDDK80_LIB_ROOT)/wlh
+PATH_SDK_WINDDK80_LIB_WDF_ROOT ?= $(PATH_SDK_WINDDK80_LIB_ROOT)/wdf
+PATH_SDK_WINDDK80_LIB_MFC_ROOT ?= $(PATH_SDK_WINDDK80_LIB_ROOT)/Mfc
+PATH_SDK_WINDDK80_LIB_ATL_ROOT ?= $(PATH_SDK_WINDDK80_LIB_ROOT)/Atl
+
+PATH_SDK_WINDDK80_LIB_W8.amd64 ?= $(PATH_SDK_WINDDK80_LIB_W8_ROOT)/km/x64
+PATH_SDK_WINDDK80_LIB_W8.x86 ?= $(PATH_SDK_WINDDK80_LIB_W8_ROOT)/km/x86
+PATH_SDK_WINDDK80_LIB_W8 ?= $(PATH_SDK_WINDDK80_LIB_W8.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINDDK80_LIB_W7.amd64 ?= $(PATH_SDK_WINDDK80_LIB_W7_ROOT)/km/x64
+PATH_SDK_WINDDK80_LIB_W7.x86 ?= $(PATH_SDK_WINDDK80_LIB_W7_ROOT)/km/x86
+PATH_SDK_WINDDK80_LIB_W7 ?= $(PATH_SDK_WINDDK80_LIB_W7.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINDDK80_LIB_WLH.amd64 ?= $(PATH_SDK_WINDDK80_LIB_WLH_ROOT)/km/x64
+PATH_SDK_WINDDK80_LIB_WLH.x86 ?= $(PATH_SDK_WINDDK80_LIB_WLH_ROOT)/km/x86
+PATH_SDK_WINDDK80_LIB_WLH ?= $(PATH_SDK_WINDDK80_LIB_WLH.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINDDK80_LIB.amd64 ?= $(PATH_SDK_WINDDK80_LIB_WLH.amd64)
+PATH_SDK_WINDDK80_LIB.x86 ?= $(PATH_SDK_WINDDK80_LIB_WLH.x86)
+PATH_SDK_WINDDK80_LIB ?= $(PATH_SDK_WINDDK80_LIB.$(KBUILD_TARGET_ARCH))
+
+# General Properties used by kBuild
+SDK_WINDDK80_DEFS.amd64 ?= _AMD64_ AMD64 _WIN64
+SDK_WINDDK80_DEFS.x86 ?= _X86_=1 i386=1 STD_CALL
+SDK_WINDDK80_INCS ?= \
+ $(PATH_SDK_WINDDK80_INC_KM) \
+ $(PATH_SDK_WINDDK80_INC_UM) \
+ $(PATH_SDK_WINDDK80_INC_SHARED) \
+# The compiler tool(s) will have to select the appropriate crt includes.
+SDK_WINDDK80_LIBPATH.amd64 ?= $(PATH_SDK_WINDDK80_LIB_WLH.amd64)
+SDK_WINDDK80_LIBPATH.x86 ?= $(PATH_SDK_WINDDK80_LIB_WLH.x86)
+
diff --git a/kBuild/sdks/WINDDK80W8.kmk b/kBuild/sdks/WINDDK80W8.kmk
new file mode 100644
index 0000000..08b571c
--- /dev/null
+++ b/kBuild/sdks/WINDDK80W8.kmk
@@ -0,0 +1,46 @@
+# $Id: WINDDK80W8.kmk 3121 2017-10-31 10:58:59Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows 8 DDKs, Targeting Windows 8 (KBUILD_TARGET_ARCH).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINDDK80W8 := The Microsoft Windows 8 DDKs, Targeting Windows 8 (KBUILD_TARGET_ARCH).
+SDK_WINDDK80W8_EXTENDS = WINDDK80
+SDK_WINDDK80W8_DEFS ?= WIN32=100 _WIN32_WINNT=0x0602 WINVER=0x0602 _WIN32_IE=0x0A00 NTDDI_VERSION=0x06020000 \
+ KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005
+SDK_WINDDK80W8_LIBPATH.amd64 ?= $(PATH_SDK_WINDDK80_LIB_W8.amd64)
+SDK_WINDDK80W8_LIBPATH.x86 ?= $(PATH_SDK_WINDDK80_LIB_W8.x86)
+
+# SDK Specific Properties.
+# Note! extends the WINDDK80 sdk, so use those variables where ever possible
+PATH_SDK_WINDDK80W8_LIB.amd64?= $(PATH_SDK_WINDDK80_LIB_W8.amd64)
+PATH_SDK_WINDDK80W8_LIB.x86 ?= $(PATH_SDK_WINDDK80_LIB_W8.x86)
+PATH_SDK_WINDDK80W8_LIB ?= $(PATH_SDK_WINDDK80W8_LIB.$(KBUILD_TARGET_ARCH))
+
diff --git a/kBuild/sdks/WINDDKW2K.kmk b/kBuild/sdks/WINDDKW2K.kmk
new file mode 100644
index 0000000..318f9a6
--- /dev/null
+++ b/kBuild/sdks/WINDDKW2K.kmk
@@ -0,0 +1,43 @@
+# $Id: WINDDKW2K.kmk 3121 2017-10-31 10:58:59Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows Vista and Server 2008 DDKs, Targeting Windows 2000 (x86).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINDDKW2K := The Microsoft Windows Vista and Server 2008 DDKs, Targeting Windows 2000 (x86).
+SDK_WINDDKW2K_EXTENDS = WINDDK
+SDK_WINDDKW2K_DEFS ?= WIN32=100 _WIN32_WINNT=0x0500 WINVER=0x0500 _WIN32_IE=0x0501 NTDDI_VERSION=0x05000400
+SDK_WINDDKW2K_LIBPATH.x86 ?= $(PATH_SDK_WINDDK_LIB_W2K.x86)
+
+# SDK Specific Properties.
+# Note! extends the WINDDK sdk, so use those variables where ever possible
+PATH_SDK_WINDDKW2K_LIB.x86 ?= $(PATH_SDK_WINDDK_LIB_W2K.x86)
+PATH_SDK_WINDDKW2K_LIB ?= $(PATH_SDK_WINDDKW2K_LIB.x86)
+
diff --git a/kBuild/sdks/WINDDKWLH.kmk b/kBuild/sdks/WINDDKWLH.kmk
new file mode 100644
index 0000000..63952a0
--- /dev/null
+++ b/kBuild/sdks/WINDDKWLH.kmk
@@ -0,0 +1,47 @@
+# $Id: WINDDKWLH.kmk 3121 2017-10-31 10:58:59Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows Vista and Server 2008 DDKs, Targeting Vista and 2008 (KBUILD_TARGET_ARCH).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINDDKWLH := The Microsoft Windows Vista and Server 2008 DDKs, Targeting Vista and 2008 (KBUILD_TARGET_ARCH).
+SDK_WINDDKWLH_EXTENDS = WINDDK
+SDK_WINDDKWLH_DEFS ?= WIN32=100 _WIN32_WINNT=0x0600 WINVER=0x0600 _WIN32_IE=0x0700 NTDDI_VERSION=0x06000000 KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=005
+SDK_WINDDKWLH_LIBPATH.amd64 ?= $(PATH_SDK_WINDDK_LIB_WLH.amd64)
+SDK_WINDDKWLH_LIBPATH.ia64 ?= $(PATH_SDK_WINDDK_LIB_WLH.ia64)
+SDK_WINDDKWLH_LIBPATH.x86 ?= $(PATH_SDK_WINDDK_LIB_WLH.x86)
+
+# SDK Specific Properties.
+# Note! extends the WINDDK sdk, so use those variables where ever possible
+PATH_SDK_WINDDKWLH_LIB.amd64?= $(PATH_SDK_WINDDK_LIB_WLH.amd64)
+PATH_SDK_WINDDKWLH_LIB.ia64 ?= $(PATH_SDK_WINDDK_LIB_WLH.ia64)
+PATH_SDK_WINDDKWLH_LIB.x86 ?= $(PATH_SDK_WINDDK_LIB_WLH.x86)
+PATH_SDK_WINDDKWLH_LIB ?= $(PATH_SDK_WINDDKWLH_LIB.$(KBUILD_TARGET_ARCH))
+
diff --git a/kBuild/sdks/WINDDKWNET.kmk b/kBuild/sdks/WINDDKWNET.kmk
new file mode 100644
index 0000000..f4b092e
--- /dev/null
+++ b/kBuild/sdks/WINDDKWNET.kmk
@@ -0,0 +1,47 @@
+# $Id: WINDDKWNET.kmk 3121 2017-10-31 10:58:59Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows Vista and Server 2008 DDKs, Targeting Windows Server 2003 (KBUILD_TARGET_ARCH).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINDDKWNET := The Microsoft Windows Vista and Server 2008 DDKs, Targeting Windows Server 2003 (KBUILD_TARGET_ARCH).
+SDK_WINDDKWNET_EXTENDS = WINDDK
+SDK_WINDDKWNET_DEFS ?= WIN32=100 _WIN32_WINNT=0x0502 WINVER=0x0502 _WIN32_IE=0x0603 NTDDI_VERSION=0x05020100
+SDK_WINDDKWNET_LIBPATH.amd64 ?= $(PATH_SDK_WINDDK_LIB_WNET.amd64)
+SDK_WINDDKWNET_LIBPATH.ia64 ?= $(PATH_SDK_WINDDK_LIB_WNET.ia64)
+SDK_WINDDKWNET_LIBPATH.x86 ?= $(PATH_SDK_WINDDK_LIB_WNET.x86)
+
+# SDK Specific Properties.
+# Note! extends the WINDDK sdk, so use those variables where ever possible
+PATH_SDK_WINDDKWNET_LIB.amd64?= $(PATH_SDK_WINDDK_LIB_WNET.amd64)
+PATH_SDK_WINDDKWNET_LIB.ia64 ?= $(PATH_SDK_WINDDK_LIB_WNET.ia64)
+PATH_SDK_WINDDKWNET_LIB.x86 ?= $(PATH_SDK_WINDDK_LIB_WNET.x86)
+PATH_SDK_WINDDKWNET_LIB ?= $(PATH_SDK_WINDDKWNET_LIB.$(KBUILD_TARGET_ARCH))
+
diff --git a/kBuild/sdks/WINDDKWXP.kmk b/kBuild/sdks/WINDDKWXP.kmk
new file mode 100644
index 0000000..8df29d5
--- /dev/null
+++ b/kBuild/sdks/WINDDKWXP.kmk
@@ -0,0 +1,43 @@
+# $Id: WINDDKWXP.kmk 3121 2017-10-31 10:58:59Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows Vista and Server 2008 DDKs, Targeting Windows XP (x86).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINDDKWXP := The Microsoft Windows Vista and Server 2008 DDKs, Targeting Windows XP (x86).
+SDK_WINDDKWXP_EXTENDS = WINDDK
+SDK_WINDDKWXP_DEFS ?= WIN32=100 _WIN32_WINNT=0x0501 WINVER=0x0501 _WIN32_IE=0x0603 NTDDI_VERSION=0x05010200
+SDK_WINDDKWXP_LIBPATH.x86 ?= $(PATH_SDK_WINDDK_LIB_WXP.x86)
+
+# SDK Specific Properties.
+# Note! extends the WINDDK sdk, so use those variables where ever possible
+PATH_SDK_WINDDKWXP_LIB.x86 ?= $(PATH_SDK_WINDDK_LIB_WXP.x86)
+PATH_SDK_WINDDKWXP_LIB ?= $(PATH_SDK_WINDDKWXP_LIB.x86)
+
diff --git a/kBuild/sdks/WINPSDK.kmk b/kBuild/sdks/WINPSDK.kmk
new file mode 100644
index 0000000..9f24a38
--- /dev/null
+++ b/kBuild/sdks/WINPSDK.kmk
@@ -0,0 +1,161 @@
+# $Id: WINPSDK.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Windows Platform SDK, targeting (KBUILD_TARGET).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINPSDK := The Windows Platform SDK, targeting (KBUILD_TARGET).
+
+# SDK Specific Properties
+ifndef PATH_SDK_WINPSDK
+ PATH_SDK_WINPSDK := $(wildcard $(KBUILD_DEVTOOLS_BLD)/sdk/2*)
+ ifeq ($(PATH_SDK_WINPSDK),)
+ PATH_SDK_WINPSDK := $(wildcard $(KBUILD_DEVTOOLS_TRG)/sdk/2*)
+ endif
+ ifeq ($(PATH_SDK_WINPSDK),)
+ PATH_SDK_WINPSDK := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/sdk/2*)
+ endif
+ ifeq ($(PATH_SDK_WINPSDK),)
+ PATH_SDK_WINPSDK := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/sdk/2*)
+ endif
+ ifneq ($(PATH_SDK_WINPSDK),)
+ PATH_SDK_WINPSDK := $(lastword $(sort $(PATH_SDK_WINPSDK)))
+ else
+ $(warning kBuild: PATH_SDK_WINPSDK couldn't be determined!)
+ PATH_SDK_WINPSDK := $(KBUILD_DEVTOOLS_BLD)/sdk/not/found
+ endif
+else
+ PATH_SDK_WINPSDK := $(PATH_SDK_WINPSDK)
+endif
+
+ifndef PATH_SDK_WINPSDK_INC
+PATH_SDK_WINPSDK_INC := $(firstword $(wildcard $(PATH_SDK_WINPSDK)/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]) $(PATH_SDK_WINPSDK)/Include)
+endif
+
+ifndef PATH_SDK_WINPSDK_LIB.x86
+PATH_SDK_WINPSDK_LIB.x86 := $(firstword $(wildcard $(PATH_SDK_WINPSDK)/[Ll][Ii][Bb]) $(PATH_SDK_WINPSDK)/Lib)
+endif
+ifndef PATH_SDK_WINPSDK_LIB.amd64
+PATH_SDK_WINPSDK_LIB.amd64 := $(firstword $(wildcard $(PATH_SDK_WINPSDK)/[Ll][Ii][Bb]/[Aa][Mm][Dd]64 $(PATH_SDK_WINPSDK)/[Ll][Ii][Bb]/[xX]64) $(PATH_SDK_WINPSDK)/Lib/AMD64)
+endif
+ifndef PATH_SDK_WINPSDK_LIB.ia64
+PATH_SDK_WINPSDK_LIB.ia64 := $(firstword $(wildcard $(PATH_SDK_WINPSDK)/[Ll][Ii][Bb]/[Ii][Aa]64) $(PATH_SDK_WINPSDK)/Lib/IA64)
+endif
+PATH_SDK_WINPSDK_LIB ?= $(PATH_SDK_WINPSDK_LIB.$(KBUILD_TARGET_ARCH))
+
+ifndef PATH_SDK_WINPSDK_BIN
+PATH_SDK_WINPSDK_BIN := $(firstword $(wildcard $(PATH_SDK_WINPSDK)/[Bb][Ii][Nn]) $(PATH_SDK_WINPSDK)/Bin)
+endif
+ifndef PATH_SDK_WINPSDK_BIN_AMD64
+PATH_SDK_WINPSDK_BIN_AMD64 := $(firstword $(wildcard $(PATH_SDK_WINPSDK_BIN)/[Ww][Ii][Nn]64/[Xx]86/[Aa][Mm][Dd]64 $(PATH_SDK_WINPSDK_BIN)/[Ww][Ii][Nn]64/[Xx]86) $(PATH_SDK_WINPSDK_BIN)/win64/AMD64)
+endif
+ifndef PATH_SDK_WINPSDK_BIN_IA64
+PATH_SDK_WINPSDK_BIN_IA64 := $(firstword $(wildcard $(PATH_SDK_WINPSDK_BIN)/[Ww][Ii][Nn]64) $(PATH_SDK_WINPSDK_BIN)/win64)
+endif
+
+
+# General Properties used by kBuild
+SDK_WINPSDK_INCS ?= $(PATH_SDK_WINPSDK_INC)
+SDK_WINPSDK_LIBPATH.x86 ?= $(PATH_SDK_WINPSDK_LIB.x86)
+SDK_WINPSDK_LIBPATH.amd64 ?= $(PATH_SDK_WINPSDK_LIB.amd64)
+SDK_WINPSDK_LIBPATH.ia64 ?= $(PATH_SDK_WINPSDK_LIB.ia64)
+SDK_WINPSDK_LIBS.x86 ?= \
+ $(PATH_SDK_WINPSDK_LIB.x86)/Kernel32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/User32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/Gdi32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/AdvAPI32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/shell32.lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/ShLwApi.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/SetupAPI.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/Uuid.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/Version.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/WS2_32.Lib \
+ \
+ $(PATH_SDK_WINPSDK_LIB.x86)/Ole32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/OleAut32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/OleDlg.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/RpcRT4.Lib \
+ \
+ $(PATH_SDK_WINPSDK_LIB.x86)/DbgHelp.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/ImageHlp.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/IPHlpApi.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/ComCtl32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/ComDlg32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/WinSpool.Lib \
+ $(PATH_SDK_WINPSDK_LIB.x86)/WinMM.Lib
+SDK_WINPSDK_LIBS.amd64 ?= \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/Kernel32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/User32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/Gdi32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/AdvAPI32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/Shell32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/ShLwApi.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/SetupAPI.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/Uuid.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/Version.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/WS2_32.Lib \
+ \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/Ole32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/OleAut32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/OleDlg.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/RpcRT4.Lib \
+ \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/DbgHelp.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/ImageHlp.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/IPHlpApi.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/ComCtl32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/ComDlg32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/WinSpool.Lib \
+ $(PATH_SDK_WINPSDK_LIB.amd64)/WinMM.Lib
+SDK_WINPSDK_LIBS.ia64 ?= \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/Kernel32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/User32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/Gdi32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/AdvAPI32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/Shell32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/ShLwApi.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/SetupAPI.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/Uuid.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/Version.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/WS2_32.Lib \
+ \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/Ole32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/OleAut32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/OleDlg.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/RpcRT4.Lib \
+ \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/DbgHelp.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/ImageHlp.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/IPHlpApi.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/ComCtl32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/ComDlg32.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/WinSpool.Lib \
+ $(PATH_SDK_WINPSDK_LIB.ia64)/WinMM.Lib
+
diff --git a/kBuild/sdks/WINPSDK71.kmk b/kBuild/sdks/WINPSDK71.kmk
new file mode 100644
index 0000000..1330f56
--- /dev/null
+++ b/kBuild/sdks/WINPSDK71.kmk
@@ -0,0 +1,161 @@
+# $Id: WINPSDK71.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Windows Platform SDK v7.1, targeting (KBUILD_TARGET).
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINPSDK71 := The Windows Platform SDK v7.1, targeting (KBUILD_TARGET).
+
+# SDK Specific Properties
+ifndef PATH_SDK_WINPSDK71
+ PATH_SDK_WINPSDK71 := $(wildcard $(KBUILD_DEVTOOLS_BLD)/sdk/v7.1*)
+ ifeq ($(PATH_SDK_WINPSDK71),)
+ PATH_SDK_WINPSDK71 := $(wildcard $(KBUILD_DEVTOOLS_TRG)/sdk/v7.1*)
+ endif
+ ifeq ($(PATH_SDK_WINPSDK71),)
+ PATH_SDK_WINPSDK71 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/sdk/v7.1*)
+ endif
+ ifeq ($(PATH_SDK_WINPSDK71),)
+ PATH_SDK_WINPSDK71 := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/sdk/v7.1*)
+ endif
+ ifneq ($(PATH_SDK_WINPSDK71),)
+ PATH_SDK_WINPSDK71 := $(lastword $(sort $(PATH_SDK_WINPSDK71)))
+ else
+ $(warning kBuild: PATH_SDK_WINPSDK71 couldn't be determined!)
+ PATH_SDK_WINPSDK71 := $(KBUILD_DEVTOOLS_BLD)/sdk/v7.1-not-found
+ endif
+else
+ PATH_SDK_WINPSDK71 := $(PATH_SDK_WINPSDK71)
+endif
+
+ifndef PATH_SDK_WINPSDK71_INC
+PATH_SDK_WINPSDK71_INC := $(firstword $(wildcard $(PATH_SDK_WINPSDK71)/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]) $(PATH_SDK_WINPSDK71)/Include)
+endif
+
+ifndef PATH_SDK_WINPSDK71_LIB.x86
+PATH_SDK_WINPSDK71_LIB.x86 := $(firstword $(wildcard $(PATH_SDK_WINPSDK71)/[Ll][Ii][Bb]) $(PATH_SDK_WINPSDK71)/Lib)
+endif
+ifndef PATH_SDK_WINPSDK71_LIB.amd64
+PATH_SDK_WINPSDK71_LIB.amd64 := $(firstword $(wildcard $(PATH_SDK_WINPSDK71)/[Ll][Ii][Bb]/[Aa][Mm][Dd]64 $(PATH_SDK_WINPSDK71)/[Ll][Ii][Bb]/[xX]64) $(PATH_SDK_WINPSDK71)/Lib/AMD64)
+endif
+ifndef PATH_SDK_WINPSDK71_LIB.ia64
+PATH_SDK_WINPSDK71_LIB.ia64 := $(firstword $(wildcard $(PATH_SDK_WINPSDK71)/[Ll][Ii][Bb]/[Ii][Aa]64) $(PATH_SDK_WINPSDK71)/Lib/IA64)
+endif
+PATH_SDK_WINPSDK71_LIB ?= $(PATH_SDK_WINPSDK71_LIB.$(KBUILD_TARGET_ARCH))
+
+ifndef PATH_SDK_WINPSDK71_BIN
+PATH_SDK_WINPSDK71_BIN := $(firstword $(wildcard $(PATH_SDK_WINPSDK71)/[Bb][Ii][Nn]) $(PATH_SDK_WINPSDK71)/Bin)
+endif
+ifndef PATH_SDK_WINPSDK71_BIN_AMD64
+PATH_SDK_WINPSDK71_BIN_AMD64 := $(firstword $(wildcard $(PATH_SDK_WINPSDK71_BIN)/[Ww][Ii][Nn]64/[Xx]86/[Aa][Mm][Dd]64 $(PATH_SDK_WINPSDK71_BIN)/[Ww][Ii][Nn]64/[Xx]86) $(PATH_SDK_WINPSDK71_BIN)/win64/AMD64)
+endif
+ifndef PATH_SDK_WINPSDK71_BIN_IA64
+PATH_SDK_WINPSDK71_BIN_IA64 := $(firstword $(wildcard $(PATH_SDK_WINPSDK71_BIN)/[Ww][Ii][Nn]64) $(PATH_SDK_WINPSDK71_BIN)/win64)
+endif
+
+
+# General Properties used by kBuild
+SDK_WINPSDK71_INCS ?= $(PATH_SDK_WINPSDK71_INC)
+SDK_WINPSDK71_LIBPATH.x86 ?= $(PATH_SDK_WINPSDK71_LIB.x86)
+SDK_WINPSDK71_LIBPATH.amd64 ?= $(PATH_SDK_WINPSDK71_LIB.amd64)
+SDK_WINPSDK71_LIBPATH.ia64 ?= $(PATH_SDK_WINPSDK71_LIB.ia64)
+SDK_WINPSDK71_LIBS.x86 ?= \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/Kernel32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/User32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/Gdi32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/AdvAPI32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/shell32.lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/ShLwApi.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/SetupAPI.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/Uuid.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/Version.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/WS2_32.Lib \
+ \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/Ole32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/OleAut32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/OleDlg.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/RpcRT4.Lib \
+ \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/DbgHelp.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/ImageHlp.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/IPHlpApi.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/ComCtl32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/ComDlg32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/WinSpool.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.x86)/WinMM.Lib
+SDK_WINPSDK71_LIBS.amd64 ?= \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/Kernel32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/User32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/Gdi32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/AdvAPI32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/Shell32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/ShLwApi.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/SetupAPI.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/Uuid.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/Version.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/WS2_32.Lib \
+ \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/Ole32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/OleAut32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/OleDlg.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/RpcRT4.Lib \
+ \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/DbgHelp.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/ImageHlp.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/IPHlpApi.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/ComCtl32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/ComDlg32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/WinSpool.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.amd64)/WinMM.Lib
+SDK_WINPSDK71_LIBS.ia64 ?= \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/Kernel32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/User32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/Gdi32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/AdvAPI32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/Shell32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/ShLwApi.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/SetupAPI.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/Uuid.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/Version.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/WS2_32.Lib \
+ \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/Ole32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/OleAut32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/OleDlg.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/RpcRT4.Lib \
+ \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/DbgHelp.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/ImageHlp.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/IPHlpApi.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/ComCtl32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/ComDlg32.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/WinSpool.Lib \
+ $(PATH_SDK_WINPSDK71_LIB.ia64)/WinMM.Lib
+
diff --git a/kBuild/sdks/WINPSDK71INCS.kmk b/kBuild/sdks/WINPSDK71INCS.kmk
new file mode 100644
index 0000000..3ab712d
--- /dev/null
+++ b/kBuild/sdks/WINPSDK71INCS.kmk
@@ -0,0 +1,90 @@
+# $Id: WINPSDK71INCS.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Windows Platform SDK v7.1, targeting (KBUILD_TARGET) but
+# without any libraries or LIBPATH properties.
+# Basically for finding specstrings.h when using the DDK.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINPSDK71INCS := The Windows Platform SDK v7.1, targeting (KBUILD_TARGET) but \
+ without any library or LIBPATH properties. \
+ Basically for finding specstrings.h when using the DDK.
+
+# SDK Specific Properties
+ifndef PATH_SDK_WINPSDK71INCS
+ ifdef PATH_SDK_WINPSDK71
+ PATH_SDK_WINPSDK71INCS := $(PATH_SDK_WINPSDK71)
+ else
+ PATH_SDK_WINPSDK71INCS := $(wildcard $(KBUILD_DEVTOOLS_BLD)/sdk/v7.1*)
+ ifeq ($(PATH_SDK_WINPSDK71INCS),)
+ PATH_SDK_WINPSDK71INCS := $(wildcard $(KBUILD_DEVTOOLS_TRG)/sdk/v7.1*)
+ endif
+ ifeq ($(PATH_SDK_WINPSDK71INCS),)
+ PATH_SDK_WINPSDK71INCS := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/sdk/v7.1*)
+ endif
+ ifeq ($(PATH_SDK_WINPSDK71INCS),)
+ PATH_SDK_WINPSDK71INCS := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/sdk/v7.1*)
+ endif
+ ifneq ($(PATH_SDK_WINPSDK71INCS),)
+ PATH_SDK_WINPSDK71INCS := $(lastword $(sort $(PATH_SDK_WINPSDK71INCS)))
+ else
+ $(warning kBuild: PATH_SDK_WINPSDK71INCS couldn't be determined!)
+ PATH_SDK_WINPSDK71INCS := $(KBUILD_DEVTOOLS_BLD)/sdk/v7.1-not-found
+ endif
+ endif
+else
+ PATH_SDK_WINPSDK71INCS := $(PATH_SDK_WINPSDK71INCS)
+endif
+ifndef PATH_SDK_WINPSDK71INCS_INC
+PATH_SDK_WINPSDK71INCS_INC := $(firstword $(wildcard $(PATH_SDK_WINPSDK71INCS)/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]) $(PATH_SDK_WINPSDK71INCS)/Include)
+endif
+
+ifndef PATH_SDK_WINPSDK71INCS_LIB.x86
+PATH_SDK_WINPSDK71INCS_LIB.x86 := $(firstword $(wildcard $(PATH_SDK_WINPSDK71INCS)/[Ll][Ii][Bb]) $(PATH_SDK_WINPSDK71INCS)/Lib)
+endif
+ifndef PATH_SDK_WINPSDK71INCS_LIB.amd64
+PATH_SDK_WINPSDK71INCS_LIB.amd64 := $(firstword $(wildcard $(PATH_SDK_WINPSDK71INCS)/[Ll][Ii][Bb]/[Aa][Mm][Dd]64) $(PATH_SDK_WINPSDK71INCS)/Lib/AMD64)
+endif
+PATH_SDK_WINPSDK71INCS_LIB ?= $(PATH_SDK_WINPSDK71INCS_LIB.$(KBUILD_TARGET_ARCH))
+
+ifndef PATH_SDK_WINPSDK71INCS_BIN
+PATH_SDK_WINPSDK71INCS_BIN := $(firstword $(wildcard $(PATH_SDK_WINPSDK71INCS)/[Bb][Ii][Nn]) $(PATH_SDK_WINPSDK71INCS)/Bin)
+endif
+ifndef PATH_SDK_WINPSDK71INCS_BIN_AMD64
+PATH_SDK_WINPSDK71INCS_BIN_AMD64 := $(firstword $(wildcard $(PATH_SDK_WINPSDK71INCS_BIN)/[Ww][Ii][Nn]64/[Xx]86/[Aa][Mm][Dd]64) $(PATH_SDK_WINPSDK71INCS_BIN)/win64/AMD64)
+endif
+ifndef PATH_SDK_WINPSDK71INCS_BIN_IA64
+PATH_SDK_WINPSDK71INCS_BIN_IA64 := $(firstword $(wildcard $(PATH_SDK_WINPSDK71INCS_BIN)/[Ww][Ii][Nn]64) $(PATH_SDK_WINPSDK71INCS_BIN)/win64)
+endif
+
+
+# General Properties used by kBuild
+SDK_WINPSDK71INCS_INCS ?= $(PATH_SDK_WINPSDK71INCS_INC)
+
diff --git a/kBuild/sdks/WINPSDKINCS.kmk b/kBuild/sdks/WINPSDKINCS.kmk
new file mode 100644
index 0000000..e7c8b69
--- /dev/null
+++ b/kBuild/sdks/WINPSDKINCS.kmk
@@ -0,0 +1,93 @@
+# $Id: WINPSDKINCS.kmk 3418 2020-08-21 11:02:13Z bird $
+## @file
+# kBuild SDK - The Windows Platform SDK, targeting (KBUILD_TARGET) but
+# without any libraries or LIBPATH properties.
+# Basically for finding specstrings.h when using the DDK.
+#
+
+#
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINPSDKINCS := The Windows Platform SDK, targeting (KBUILD_TARGET) but \
+ without any library or LIBPATH properties. \
+ Basically for finding specstrings.h when using the DDK.
+
+# SDK Specific Properties
+ifndef PATH_SDK_WINPSDKINCS
+ ifdef PATH_SDK_WINPSDK
+ PATH_SDK_WINPSDKINCS := $(PATH_SDK_WINPSDK)
+ else
+ PATH_SDK_WINPSDKINCS := $(wildcard $(KBUILD_DEVTOOLS_BLD)/sdk/2*)
+ ifeq ($(PATH_SDK_WINPSDKINCS),)
+ PATH_SDK_WINPSDKINCS := $(wildcard $(KBUILD_DEVTOOLS_TRG)/sdk/2*)
+ endif
+ ifeq ($(PATH_SDK_WINPSDKINCS),)
+ PATH_SDK_WINPSDKINCS := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/sdk/2*)
+ endif
+ ifeq ($(PATH_SDK_WINPSDKINCS),)
+ PATH_SDK_WINPSDKINCS := $(wildcard $(KBUILD_DEVTOOLS)/x86.win32/sdk/2*)
+ endif
+ ifeq ($(PATH_SDK_WINPSDKINCS),)
+ PATH_SDK_WINPSDKINCS := $(wildcard $(KBUILD_DEVTOOLS)/win.amd64/sdk/2*)
+ endif
+ ifneq ($(PATH_SDK_WINPSDKINCS),)
+ PATH_SDK_WINPSDKINCS := $(lastword $(sort $(PATH_SDK_WINPSDKINCS)))
+ else
+ $(warning kBuild: PATH_SDK_WINPSDKINCS couldn't be determined!)
+ PATH_SDK_WINPSDKINCS := $(KBUILD_DEVTOOLS_BLD)/sdk/not/found
+ endif
+ endif
+else
+ PATH_SDK_WINPSDKINCS := $(PATH_SDK_WINPSDKINCS)
+endif
+ifndef PATH_SDK_WINPSDKINCS_INC
+PATH_SDK_WINPSDKINCS_INC := $(firstword $(wildcard $(PATH_SDK_WINPSDKINCS)/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]) $(PATH_SDK_WINPSDKINCS)/Include)
+endif
+
+ifndef PATH_SDK_WINPSDKINCS_LIB.x86
+PATH_SDK_WINPSDKINCS_LIB.x86 := $(firstword $(wildcard $(PATH_SDK_WINPSDKINCS)/[Ll][Ii][Bb]) $(PATH_SDK_WINPSDKINCS)/Lib)
+endif
+ifndef PATH_SDK_WINPSDKINCS_LIB.amd64
+PATH_SDK_WINPSDKINCS_LIB.amd64 := $(firstword $(wildcard $(PATH_SDK_WINPSDKINCS)/[Ll][Ii][Bb]/[Aa][Mm][Dd]64) $(PATH_SDK_WINPSDKINCS)/Lib/AMD64)
+endif
+PATH_SDK_WINPSDKINCS_LIB ?= $(PATH_SDK_WINPSDKINCS_LIB.$(KBUILD_TARGET_ARCH))
+
+ifndef PATH_SDK_WINPSDKINCS_BIN
+PATH_SDK_WINPSDKINCS_BIN := $(firstword $(wildcard $(PATH_SDK_WINPSDKINCS)/[Bb][Ii][Nn]) $(PATH_SDK_WINPSDKINCS)/Bin)
+endif
+ifndef PATH_SDK_WINPSDKINCS_BIN_AMD64
+PATH_SDK_WINPSDKINCS_BIN_AMD64 := $(firstword $(wildcard $(PATH_SDK_WINPSDKINCS_BIN)/[Ww][Ii][Nn]64/[Xx]86/[Aa][Mm][Dd]64) $(PATH_SDK_WINPSDKINCS_BIN)/win64/AMD64)
+endif
+ifndef PATH_SDK_WINPSDKINCS_BIN_IA64
+PATH_SDK_WINPSDKINCS_BIN_IA64 := $(firstword $(wildcard $(PATH_SDK_WINPSDKINCS_BIN)/[Ww][Ii][Nn]64) $(PATH_SDK_WINPSDKINCS_BIN)/win64)
+endif
+
+
+# General Properties used by kBuild
+SDK_WINPSDKINCS_INCS ?= $(PATH_SDK_WINPSDKINCS_INC)
+
diff --git a/kBuild/sdks/WINSDK10-KM-W7.kmk b/kBuild/sdks/WINSDK10-KM-W7.kmk
new file mode 100644
index 0000000..22e70c0
--- /dev/null
+++ b/kBuild/sdks/WINSDK10-KM-W7.kmk
@@ -0,0 +1,51 @@
+# $Id: WINSDK10-KM-W7.kmk 3508 2021-12-16 11:05:20Z bird $
+## @file
+# kBuild SDK - Derives from WINSDK10.kmk, kernel mode, Targeting Windows 7 (KBUILD_TARGET_ARCH).
+#
+
+#
+# Copyright (c) 2006-2021 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_WINSDK10
+ include $(KBUILD_PATH)/sdks/WINSDK10-KM.kmk
+endif
+
+SDK_WINSDK10-KM-W7 := The Microsoft Windows 10 SDK, kernel mode, Targeting Windows 7 (KBUILD_TARGET_ARCH).
+SDK_WINSDK10-KM-W7_EXTENDS := WINSDK10-KM
+SDK_WINSDK10-KM-W7_DEFS ?= WIN32=100 _WIN32_WINNT=0x0601 WINVER=0x0601 _WIN32_IE=0x0800 NTDDI_VERSION=0x06010000 \
+ KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=007
+SDK_WINSDK10-KM-W7_LIBPATH.x86 ?= $(PATH_SDK_WINSDK10_KM_LIB_W7.x86)
+SDK_WINSDK10-KM-W7_LIBPATH.amd64 ?= $(PATH_SDK_WINSDK10_KM_LIB_W7.amd64)
+SDK_WINSDK10-KM-W7_LIBPATH.arm32 ?= $(PATH_SDK_WINSDK10_KM_LIB_W7.arm32)
+
+# SDK Specific Properties.
+PATH_SDK_WINSDK10-KM-W7_LIB.x86 ?= $(PATH_SDK_WINSDK10_KM_LIB_W7.x86)
+PATH_SDK_WINSDK10-KM-W7_LIB.amd64?= $(PATH_SDK_WINSDK10_KM_LIB_W7.amd64)
+PATH_SDK_WINSDK10-KM-W7_LIB.arm32?= $(PATH_SDK_WINSDK10_KM_LIB_W7.arm32)
+PATH_SDK_WINSDK10-KM-W7_LIB ?= $(PATH_SDK_WINSDK10-KM-W7_LIB.$(KBUILD_TARGET_ARCH))
+
diff --git a/kBuild/sdks/WINSDK10-KM-W8.kmk b/kBuild/sdks/WINSDK10-KM-W8.kmk
new file mode 100644
index 0000000..b6d9ea3
--- /dev/null
+++ b/kBuild/sdks/WINSDK10-KM-W8.kmk
@@ -0,0 +1,51 @@
+# $Id: WINSDK10-KM-W8.kmk 3508 2021-12-16 11:05:20Z bird $
+## @file
+# kBuild SDK - Derives from WINSDK10.kmk, kernel mode, Targeting Windows 8 (KBUILD_TARGET_ARCH).
+#
+
+#
+# Copyright (c) 2006-2021 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_WINSDK10
+ include $(KBUILD_PATH)/sdks/WINSDK10-KM.kmk
+endif
+
+SDK_WINSDK10-KM-W8 := The Microsoft Windows 10 SDK, kernel mode, Targeting Windows 8 (KBUILD_TARGET_ARCH).
+SDK_WINSDK10-KM-W8_EXTENDS := WINSDK10-KM
+SDK_WINSDK10-KM-W8_DEFS ?= WIN32=100 _WIN32_WINNT=0x0602 WINVER=0x0602 _WIN32_IE=0x0A00 NTDDI_VERSION=0x06020000 \
+ KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=011
+SDK_WINSDK10-KM-W8_LIBPATH.x86 ?= $(PATH_SDK_WINSDK10_KM_LIB_W8.x86)
+SDK_WINSDK10-KM-W8_LIBPATH.amd64 ?= $(PATH_SDK_WINSDK10_KM_LIB_W8.amd64)
+SDK_WINSDK10-KM-W8_LIBPATH.arm32 ?= $(PATH_SDK_WINSDK10_KM_LIB_W8.arm32)
+
+# SDK Specific Properties.
+PATH_SDK_WINSDK10-KM-W8_LIB.x86 ?= $(PATH_SDK_WINSDK10_KM_LIB_W8.x86)
+PATH_SDK_WINSDK10-KM-W8_LIB.amd64?= $(PATH_SDK_WINSDK10_KM_LIB_W8.amd64)
+PATH_SDK_WINSDK10-KM-W8_LIB.arm32?= $(PATH_SDK_WINSDK10_KM_LIB_W8.arm32)
+PATH_SDK_WINSDK10-KM-W8_LIB ?= $(PATH_SDK_WINSDK10-KM-W8_LIB.$(KBUILD_TARGET_ARCH))
+
diff --git a/kBuild/sdks/WINSDK10-KM-W81.kmk b/kBuild/sdks/WINSDK10-KM-W81.kmk
new file mode 100644
index 0000000..c2538b8
--- /dev/null
+++ b/kBuild/sdks/WINSDK10-KM-W81.kmk
@@ -0,0 +1,51 @@
+# $Id: WINSDK10-KM-W81.kmk 3508 2021-12-16 11:05:20Z bird $
+## @file
+# kBuild SDK - Derives from WINSDK10.kmk, kernel mode, Targeting Windows 8.1 (KBUILD_TARGET_ARCH).
+#
+
+#
+# Copyright (c) 2006-2021 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_WINSDK10
+ include $(KBUILD_PATH)/sdks/WINSDK10-KM.kmk
+endif
+
+SDK_WINSDK10-KM-W81 := The Microsoft Windows 10 SDK, kernel mode, Targeting Windows 8.1 (KBUILD_TARGET_ARCH).
+SDK_WINSDK10-KM-W81_EXTENDS := WINSDK10-KM
+SDK_WINSDK10-KM-W81_DEFS ?= WIN32=100 _WIN32_WINNT=0x0603 WINVER=0x0603 _WIN32_IE=0x0A00 NTDDI_VERSION=0x06030000 \
+ KMDF_MAJOR_VERSION=01 KMDF_MINOR_VERSION=013
+SDK_WINSDK10-KM-W81_LIBPATH.x86 ?= $(PATH_SDK_WINSDK10_KM_LIB_W81.x86)
+SDK_WINSDK10-KM-W81_LIBPATH.amd64 ?= $(PATH_SDK_WINSDK10_KM_LIB_W81.amd64)
+SDK_WINSDK10-KM-W81_LIBPATH.arm32 ?= $(PATH_SDK_WINSDK10_KM_LIB_W81.arm32)
+
+# SDK Specific Properties.
+PATH_SDK_WINSDK10-KM-W81_LIB.x86 ?= $(PATH_SDK_WINSDK10_KM_LIB_W81.x86)
+PATH_SDK_WINSDK10-KM-W81_LIB.amd64?= $(PATH_SDK_WINSDK10_KM_LIB_W81.amd64)
+PATH_SDK_WINSDK10-KM-W81_LIB.arm32?= $(PATH_SDK_WINSDK10_KM_LIB_W81.arm32)
+PATH_SDK_WINSDK10-KM-W81_LIB ?= $(PATH_SDK_WINSDK10-KM-W81_LIB.$(KBUILD_TARGET_ARCH))
+
diff --git a/kBuild/sdks/WINSDK10-KM.kmk b/kBuild/sdks/WINSDK10-KM.kmk
new file mode 100644
index 0000000..f5f8484
--- /dev/null
+++ b/kBuild/sdks/WINSDK10-KM.kmk
@@ -0,0 +1,59 @@
+# $Id: WINSDK10-KM.kmk 3507 2021-12-16 01:35:08Z bird $
+## @file
+# kBuild SDK - Derives from WINSDK10.kmk, kernel mode.
+#
+
+#
+# Copyright (c) 2006-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_WINSDK10
+ include $(KBUILD_PATH)/sdks/WINSDK10.kmk
+endif
+
+SDK_WINSDK10-KM := The Microsoft Windows 10 SDK, kernel mode.
+SDK_WINSDK10-KM_DEFS.amd64 ?= _AMD64_ AMD64 _WIN64
+SDK_WINSDK10-KM_DEFS.x86 ?= _X86_=1 i386=1 STD_CALL
+SDK_WINSDK10-KM_DEFS.arm32 ?= #??
+SDK_WINSDK10-KM_DEFS.arm64 ?= #??
+SDK_WINSDK10-KM_INCS ?= \
+ $(PATH_SDK_WINSDK10_KM_INC) \
+ $(PATH_SDK_WINSDK10_SHARED_INC)
+SDK_WINSDK10-KM_LIBPATH.x86 ?= $(PATH_SDK_WINSDK10_KM_LIB.x86)
+SDK_WINSDK10-KM_LIBPATH.amd64 ?= $(PATH_SDK_WINSDK10_KM_LIB.amd64)
+SDK_WINSDK10-KM_LIBPATH.arm32 ?= $(PATH_SDK_WINSDK10_KM_LIB.arm32)
+SDK_WINSDK10-KM_LIBPATH.arm64 ?= $(PATH_SDK_WINSDK10_KM_LIB.arm64)
+
+# Path variables for smoothing the transistion from older PSDKs.
+PATH_SDK_WINSDK10_KM = $(PATH_SDK_WINSDK10)
+
+PATH_SDK_WINSDK10-KM_LIB.x86 = $(PATH_SDK_WINSDK10_KM_LIB.x86)
+PATH_SDK_WINSDK10-KM_LIB.amd64 = $(PATH_SDK_WINSDK10_KM_LIB.amd64)
+PATH_SDK_WINSDK10-KM_LIB.arm32 = $(PATH_SDK_WINSDK10_KM_LIB.arm32)
+PATH_SDK_WINSDK10-KM_LIB.arm64 = $(PATH_SDK_WINSDK10_KM_LIB.arm64)
+PATH_SDK_WINSDK10-KM_LIB ?= $(PATH_SDK_WINSDK10_KM_LIB.$(KBUILD_TARGET_ARCH))
+
diff --git a/kBuild/sdks/WINSDK10-UCRT-INCS.kmk b/kBuild/sdks/WINSDK10-UCRT-INCS.kmk
new file mode 100644
index 0000000..682ce07
--- /dev/null
+++ b/kBuild/sdks/WINSDK10-UCRT-INCS.kmk
@@ -0,0 +1,40 @@
+# $Id: WINSDK10-UCRT-INCS.kmk 3320 2020-04-16 22:19:22Z bird $
+## @file
+# kBuild SDK - Derives from WINSDK10.kmk, Universal CRT, includes only.
+#
+
+#
+# Copyright (c) 2006-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_WINSDK10
+ include $(KBUILD_PATH)/sdks/WINSDK10.kmk
+endif
+
+SDK_WINSDK10-UCRT-INCS := The Microsoft Windows 10 SDK, Universal CRT, only includes.
+SDK_WINSDK10-UCRT-INCS_INCS ?= $(PATH_SDK_WINSDK10_UCRT_INC)
+
diff --git a/kBuild/sdks/WINSDK10-UCRT-STATIC.kmk b/kBuild/sdks/WINSDK10-UCRT-STATIC.kmk
new file mode 100644
index 0000000..d1ab310
--- /dev/null
+++ b/kBuild/sdks/WINSDK10-UCRT-STATIC.kmk
@@ -0,0 +1,56 @@
+# $Id: WINSDK10-UCRT-STATIC.kmk 3320 2020-04-16 22:19:22Z bird $
+## @file
+# kBuild SDK - Derives from WINSDK10.kmk, Universal CRT, DLL linking.
+#
+
+#
+# Copyright (c) 2006-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_WINSDK10
+ include $(KBUILD_PATH)/sdks/WINSDK10.kmk
+endif
+
+SDK_WINSDK10-UCRT-STATIC := The Microsoft Windows 10 SDK, Universal CRT, static linking.
+SDK_WINSDK10-UCRT-STATIC_INCS ?= $(PATH_SDK_WINSDK10_UCRT_INC)
+SDK_WINSDK10-UCRT-STATIC_LIBPATH.x86 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.x86)
+SDK_WINSDK10-UCRT-STATIC_LIBPATH.amd64 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.amd64)
+SDK_WINSDK10-UCRT-STATIC_LIBPATH.arm32 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)
+SDK_WINSDK10-UCRT-STATIC_LIBPATH.arm64 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.arm64)
+ifndef SDK_WINSDK10-UCRT-STATIC_LIBS.amd64
+SDK_WINSDK10-UCRT-STATIC_LIBS.amd64 := $(PATH_SDK_WINSDK10_UCRT_LIB.amd64)/$(SDK_WINSDK10_UCRT_STATIC_NAME)
+endif
+ifndef SDK_WINSDK10-UCRT-STATIC_LIBS.arm32
+SDK_WINSDK10-UCRT-STATIC_LIBS.arm32 := $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)/$(SDK_WINSDK10_UCRT_STATIC_NAME)
+endif
+ifndef SDK_WINSDK10-UCRT-STATIC_LIBS.arm64
+SDK_WINSDK10-UCRT-STATIC_LIBS.arm64 := $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)/$(SDK_WINSDK10_UCRT_STATIC_NAME)
+endif
+ifndef SDK_WINSDK10-UCRT-STATIC_LIBS.x86
+SDK_WINSDK10-UCRT-STATIC_LIBS.x86 := $(PATH_SDK_WINSDK10_UCRT_LIB.x86)/$(SDK_WINSDK10_UCRT_STATIC_NAME)
+endif
+
diff --git a/kBuild/sdks/WINSDK10-UCRT.kmk b/kBuild/sdks/WINSDK10-UCRT.kmk
new file mode 100644
index 0000000..f1d0483
--- /dev/null
+++ b/kBuild/sdks/WINSDK10-UCRT.kmk
@@ -0,0 +1,56 @@
+# $Id: WINSDK10-UCRT.kmk 3320 2020-04-16 22:19:22Z bird $
+## @file
+# kBuild SDK - Derives from WINSDK10.kmk, Universal CRT, DLL linking.
+#
+
+#
+# Copyright (c) 2006-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_WINSDK10
+ include $(KBUILD_PATH)/sdks/WINSDK10.kmk
+endif
+
+SDK_WINSDK10-UCRT := The Microsoft Windows 10 SDK, Universal CRT, DLL linking.
+SDK_WINSDK10-UCRT_INCS ?= $(PATH_SDK_WINSDK10_UCRT_INC)
+SDK_WINSDK10-UCRT_LIBPATH.x86 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.x86)
+SDK_WINSDK10-UCRT_LIBPATH.amd64 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.amd64)
+SDK_WINSDK10-UCRT_LIBPATH.arm32 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)
+SDK_WINSDK10-UCRT_LIBPATH.arm64 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.arm64)
+ifndef SDK_WINSDK10-UCRT_LIBS.amd64
+SDK_WINSDK10-UCRT_LIBS.amd64 := $(PATH_SDK_WINSDK10_UCRT_LIB.amd64)/$(SDK_WINSDK10_UCRT_IMPLIB_NAME)
+endif
+ifndef SDK_WINSDK10-UCRT_LIBS.arm32
+SDK_WINSDK10-UCRT_LIBS.arm32 := $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)/$(SDK_WINSDK10_UCRT_IMPLIB_NAME)
+endif
+ifndef SDK_WINSDK10-UCRT_LIBS.arm64
+SDK_WINSDK10-UCRT_LIBS.arm64 := $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)/$(SDK_WINSDK10_UCRT_IMPLIB_NAME)
+endif
+ifndef SDK_WINSDK10-UCRT_LIBS.x86
+SDK_WINSDK10-UCRT_LIBS.x86 := $(PATH_SDK_WINSDK10_UCRT_LIB.x86)/$(SDK_WINSDK10_UCRT_IMPLIB_NAME)
+endif
+
diff --git a/kBuild/sdks/WINSDK10-UM-INCS.kmk b/kBuild/sdks/WINSDK10-UM-INCS.kmk
new file mode 100644
index 0000000..890b0ea
--- /dev/null
+++ b/kBuild/sdks/WINSDK10-UM-INCS.kmk
@@ -0,0 +1,42 @@
+# $Id: WINSDK10-UM-INCS.kmk 3500 2021-12-14 09:38:34Z bird $
+## @file
+# kBuild SDK - Derives from WINSDK10.kmk, user mode includes only.
+#
+
+#
+# Copyright (c) 2006-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_WINSDK10
+ include $(KBUILD_PATH)/sdks/WINSDK10.kmk
+endif
+
+SDK_WINSDK10-UM-INCS := The Microsoft Windows 10 SDK, user mode includes only.
+SDK_WINSDK10-UM-INCS_INCS ?= \
+ $(PATH_SDK_WINSDK10_UM_INC) \
+ $(PATH_SDK_WINSDK10_SHARED_INC)
+
diff --git a/kBuild/sdks/WINSDK10-UM.kmk b/kBuild/sdks/WINSDK10-UM.kmk
new file mode 100644
index 0000000..3773cb4
--- /dev/null
+++ b/kBuild/sdks/WINSDK10-UM.kmk
@@ -0,0 +1,69 @@
+# $Id: WINSDK10-UM.kmk 3501 2021-12-14 21:54:48Z bird $
+## @file
+# kBuild SDK - Derives from WINSDK10.kmk, user mode.
+#
+
+#
+# Copyright (c) 2006-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+ifndef SDK_WINSDK10
+ include $(KBUILD_PATH)/sdks/WINSDK10.kmk
+endif
+
+SDK_WINSDK10-UM := The Microsoft Windows 10 SDK, user mode.
+SDK_WINSDK10-UM_INCS ?= \
+ $(PATH_SDK_WINSDK10_UM_INC) \
+ $(PATH_SDK_WINSDK10_SHARED_INC)
+SDK_WINSDK10-UM_LIBPATH.x86 ?= $(PATH_SDK_WINSDK10_UM_LIB.x86)
+SDK_WINSDK10-UM_LIBPATH.amd64 ?= $(PATH_SDK_WINSDK10_UM_LIB.amd64)
+SDK_WINSDK10-UM_LIBPATH.arm32 ?= $(PATH_SDK_WINSDK10_UM_LIB.arm32)
+SDK_WINSDK10-UM_LIBPATH.arm64 ?= $(PATH_SDK_WINSDK10_UM_LIB.arm64)
+ifndef SDK_WINSDK10-UM_LIBS.amd64
+SDK_WINSDK10-UM_LIBS.amd64 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.amd64)/,$(SDK_WINSDK10_UM_LIB_NAMES))
+endif
+ifndef SDK_WINSDK10-UM_LIBS.arm32
+SDK_WINSDK10-UM_LIBS.arm32 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.arm32)/,$(SDK_WINSDK10_UM_LIB_NAMES))
+endif
+ifndef SDK_WINSDK10-UM_LIBS.arm64
+SDK_WINSDK10-UM_LIBS.arm64 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.arm64)/,$(SDK_WINSDK10_UM_LIB_NAMES))
+endif
+ifndef SDK_WINSDK10-UM_LIBS.x86
+SDK_WINSDK10-UM_LIBS.x86 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.x86)/,$(SDK_WINSDK10_UM_LIB_NAMES))
+endif
+
+# Path variables for smoothing the transistion from older PSDKs.
+PATH_SDK_WINSDK10_UM = $(PATH_SDK_WINSDK10)
+
+PATH_SDK_WINSDK10-UM_LIB.x86 = $(PATH_SDK_WINSDK10_UM_LIB.x86)
+PATH_SDK_WINSDK10-UM_LIB.amd64 = $(PATH_SDK_WINSDK10_UM_LIB.amd64)
+PATH_SDK_WINSDK10-UM_LIB.arm32 = $(PATH_SDK_WINSDK10_UM_LIB.arm32)
+PATH_SDK_WINSDK10-UM_LIB.arm64 = $(PATH_SDK_WINSDK10_UM_LIB.arm64)
+PATH_SDK_WINSDK10-UM_LIB ?= $(PATH_SDK_WINSDK10_UM_LIB.$(KBUILD_TARGET_ARCH))
+
+PATH_SDK_WINSDK10-UM_BIN ?= $(PATH_SDK_WINSDK10_BIN)
+
diff --git a/kBuild/sdks/WINSDK10.kmk b/kBuild/sdks/WINSDK10.kmk
new file mode 100644
index 0000000..bec1ce9
--- /dev/null
+++ b/kBuild/sdks/WINSDK10.kmk
@@ -0,0 +1,256 @@
+# $Id: WINSDK10.kmk 3511 2021-12-16 12:00:28Z bird $
+## @file
+# kBuild SDK - The Microsoft Windows SDK v10.
+#
+
+#
+# Copyright (c) 2006-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net>
+#
+# This file is part of kBuild.
+#
+# kBuild is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# kBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with kBuild; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+# As a special exception you are granted permission to include this file, via
+# the kmk include directive, as you wish without this in itself causing the
+# resulting makefile, program or whatever to be covered by the GPL license.
+# This exception does not however invalidate any other reasons why the makefile,
+# program, whatever should not be covered the GPL.
+#
+#
+
+SDK_WINSDK10 := The Windows Platform SDK v10, targeting (KBUILD_TARGET).
+
+ifndef INCLUDED_WIN_COMMON_KMK
+ include $(KBUILD_PATH)/win-common.kmk
+endif
+
+#
+# SDK Specific Properties
+#
+
+## @def PATH_SDK_WINSDK10
+## The base path of the Windows 10 SDK.
+## @def SDK_WINSDK10_VERSION
+## The SDK version for subdirectories.
+ifndef PATH_SDK_WINSDK10
+ ifndef SDK_WINSDK10_VERSION
+ PATH_SDK_WINSDK10 := $(firstfile $(foreachfile toolsdir, \
+ $(KBUILD_DEVTOOLS_BLD) $(KBUILD_DEVTOOLS_TRG) $(KBUILD_DEVTOOLS)/win.x86 $(KBUILD_DEVTOOLS)/win.amd64 \
+ , $(rsortfiles $(qwildcard ,$(toolsdir)/sdk/v10*/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/10.0.*))))
+ ifeq ($(PATH_SDK_WINSDK10),)
+ PATH_SDK_WINSDK10 := $(firstfile $(foreachfile progfilesdir,$(WINCMN_PROGRAM_FILES_LIST)\
+ ,$(rsortfiles $(qwildcard ,$(progfilesdir)/Windows\ Kits/10/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/10.0.*)) ))
+ ifeq ($(PATH_SDK_WINSDK10),)
+ $(warning kBuild: PATH_SDK_WINSDK10 couldn't be determined!)
+ PATH_SDK_WINSDK10 := $(KBUILD_DEVTOOLS_BLD)/sdk/v10-not-found/Include/10.0.10240.0
+ endif
+ endif
+ SDK_WINSDK10_VERSION := $(qnotdir ,$(PATH_SDK_WINSDK10))
+ else
+ PATH_SDK_WINSDK10 := $(firstfile $(foreachfile toolsdir, \
+ $(KBUILD_DEVTOOLS_BLD) $(KBUILD_DEVTOOLS_TRG) $(KBUILD_DEVTOOLS)/win.x86 $(KBUILD_DEVTOOLS)/win.amd64 \
+ , $(rsortfiles $(qwildcard ,$(toolsdir)/sdk/v10*/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/$(SDK_WINSDK10_VERSION)))))
+ ifeq ($(PATH_SDK_WINSDK10),)
+ PATH_SDK_WINSDK10 := $(firstfile $(foreachfile progfilesdir,$(WINCMN_PROGRAM_FILES_LIST)\
+ ,$(rsortfiles $(qwildcard ,$(progfilesdir)/Windows\ Kits/10/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/$(SDK_WINSDK10_VERSION))) ))
+ ifeq ($(PATH_SDK_WINSDK10),)
+ $(warning kBuild: PATH_SDK_WINSDK10 couldn't be determined!)
+ PATH_SDK_WINSDK10 := $(KBUILD_DEVTOOLS_BLD)/sdk/v10-not-found/Include/$(SDK_WINSDK10_VERSION)
+ endif
+ endif
+ SDK_WINSDK10_VERSION := $(qnotdir ,$(PATH_SDK_WINSDK10))
+ endif
+ PATH_SDK_WINSDK10 := $(substr $(qdir ,$(PATH_SDK_WINSDK10)),1,-9)
+else
+ PATH_SDK_WINSDK10 := $(PATH_SDK_WINSDK10)
+ ifndef SDK_WINSDK10_VERSION
+ SDK_WINSDK10_VERSION := $(qnotdir ,$(firstfile $(rsortfiles $(qwildcard ,$(PATH_SDK_WINSDK10)/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/10.0.*))))
+ ifeq ($(SDK_WINSDK10_VERSION),)
+ $(warning kBuild: SDK_WINSDK10_VERSION could not be determined for PATH_SDK_WINSDK10=$(PATH_SDK_WINSDK10))
+ SDK_WINSDK10_VERSION := 10.0.10240.0
+ endif
+ endif
+endif
+
+# Non-versioned base directory paths:
+ifndef PATH_SDK_WINSDK10_BASE_INC
+PATH_SDK_WINSDK10_BASE_INC := $(firstfile $(qwildcard ,$(PATH_SDK_WINSDK10)/[Ii][Nn][Cc][Ll][Uu][Dd][Ee]) $(PATH_SDK_WINSDK10)/Include)
+endif
+ifndef PATH_SDK_WINSDK10_BASE_LIB
+PATH_SDK_WINSDK10_BASE_LIB := $(firstfile $(qwildcard ,$(PATH_SDK_WINSDK10)/[Ll][Ii][Bb]) $(PATH_SDK_WINSDK10)/lib)
+endif
+ifndef PATH_SDK_WINSDK10_BASE_BIN
+PATH_SDK_WINSDK10_BASE_BIN := $(firstfile $(qwildcard ,$(PATH_SDK_WINSDK10)/[Bb][Ii][Nn]) $(PATH_SDK_WINSDK10)/bin)
+endif
+
+# Universal CRT (UCRT).
+ifndef PATH_SDK_WINSDK10_UCRT_INC
+PATH_SDK_WINSDK10_UCRT_INC := $(PATH_SDK_WINSDK10_BASE_INC)/$(SDK_WINSDK10_VERSION)/ucrt
+endif
+ifndef PATH_SDK_WINSDK10_UCRT_LIB.amd64
+PATH_SDK_WINSDK10_UCRT_LIB.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/ucrt/x64
+endif
+ifndef PATH_SDK_WINSDK10_UCRT_LIB.arm32
+PATH_SDK_WINSDK10_UCRT_LIB.arm32 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/ucrt/arm
+endif
+ifndef PATH_SDK_WINSDK10_UCRT_LIB.arm64
+PATH_SDK_WINSDK10_UCRT_LIB.arm64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/ucrt/arm64
+endif
+ifndef PATH_SDK_WINSDK10_UCRT_LIB.x86
+PATH_SDK_WINSDK10_UCRT_LIB.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/ucrt/x86
+endif
+PATH_SDK_WINSDK10_UCRT_LIB = $(PATH_SDK_WINSDK10_UCRT_LIB.$(KBUILD_TARGET_ARCH))
+SDK_WINSDK10_UCRT_IMPLIB_NAME := ucrt.lib
+SDK_WINSDK10_UCRT_IMPLIB_DBG_NAME := ucrtd.lib
+SDK_WINSDK10_UCRT_STATIC_NAME := libucrt.lib
+SDK_WINSDK10_UCRT_STATIC_DBG_NAME := libucrtd.lib
+
+# Shared API headers
+ifndef PATH_SDK_WINSDK10_SHARED_INC
+PATH_SDK_WINSDK10_SHARED_INC := $(PATH_SDK_WINSDK10_BASE_INC)/$(SDK_WINSDK10_VERSION)/shared
+endif
+
+# User-mode API (MS WIN SDK)
+ifndef PATH_SDK_WINSDK10_UM_INC
+PATH_SDK_WINSDK10_UM_INC := $(PATH_SDK_WINSDK10_BASE_INC)/$(SDK_WINSDK10_VERSION)/um
+endif
+ifndef PATH_SDK_WINSDK10_UM_LIB.amd64
+PATH_SDK_WINSDK10_UM_LIB.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/um/x64
+endif
+ifndef PATH_SDK_WINSDK10_UM_LIB.arm32
+PATH_SDK_WINSDK10_UM_LIB.arm32 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/um/arm
+endif
+ifndef PATH_SDK_WINSDK10_UM_LIB.arm64
+PATH_SDK_WINSDK10_UM_LIB.arm64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/um/arm64
+endif
+ifndef PATH_SDK_WINSDK10_UM_LIB.x86
+PATH_SDK_WINSDK10_UM_LIB.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/um/x86
+endif
+PATH_SDK_WINSDK10_UM_LIB = $(PATH_SDK_WINSDK10_UM_LIB.$(KBUILD_TARGET_ARCH))
+ifndef SDK_WINSDK10_UM_LIB_NAMES
+SDK_WINSDK10_UM_LIB_NAMES := \
+ Kernel32.Lib \
+ User32.Lib \
+ Gdi32.Lib \
+ AdvAPI32.Lib \
+ shell32.lib \
+ ShLwApi.Lib \
+ SetupAPI.Lib \
+ Uuid.Lib \
+ Version.Lib \
+ WS2_32.Lib \
+ \
+ Ole32.Lib \
+ OleAut32.Lib \
+ OleDlg.Lib \
+ RpcRT4.Lib \
+ DbgHelp.Lib \
+ \
+ ImageHlp.Lib \
+ IPHlpApi.Lib \
+ ComCtl32.Lib \
+ ComDlg32.Lib \
+ WinSpool.Lib \
+ WinMM.Lib
+endif
+
+# Kernel-mode API headers (WDK).
+ifndef PATH_SDK_WINSDK10_KM_INC
+PATH_SDK_WINSDK10_KM_INC := $(PATH_SDK_WINSDK10_BASE_INC)/$(SDK_WINSDK10_VERSION)/km
+endif
+
+# Kernel-mode API libraries (WDK).
+ifndef PATH_SDK_WINSDK10_KM_LIB.amd64
+PATH_SDK_WINSDK10_KM_LIB.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/km/x64
+endif
+ifndef PATH_SDK_WINSDK10_KM_LIB.arm32
+PATH_SDK_WINSDK10_KM_LIB.arm32 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/km/arm
+endif
+ifndef PATH_SDK_WINSDK10_KM_LIB.arm64
+PATH_SDK_WINSDK10_KM_LIB.arm64 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/km/arm64
+endif
+ifndef PATH_SDK_WINSDK10_KM_LIB.x86
+PATH_SDK_WINSDK10_KM_LIB.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/$(SDK_WINSDK10_VERSION)/km/x86
+endif
+PATH_SDK_WINSDK10_KM_LIB = $(PATH_SDK_WINSDK10_KM_LIB.$(KBUILD_TARGET_ARCH))
+
+# Kernel-mode API libraries for Windows 7 (WDK).
+ifndef PATH_SDK_WINSDK10_KM_LIB_W7.amd64
+PATH_SDK_WINSDK10_KM_LIB_W7.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/win7/km/x64
+endif
+ifndef PATH_SDK_WINSDK10_KM_LIB_W7.x86
+PATH_SDK_WINSDK10_KM_LIB_W7.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/win7/km/x86
+endif
+PATH_SDK_WINSDK10_KM_LIB_W7 = $(PATH_SDK_WINSDK10_KM_LIB_W7.$(KBUILD_TARGET_ARCH))
+
+# Kernel-mode API libraries for Windows 8 (WDK).
+ifndef PATH_SDK_WINSDK10_KM_LIB_W8.amd64
+PATH_SDK_WINSDK10_KM_LIB_W8.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/win8/km/x64
+endif
+ifndef PATH_SDK_WINSDK10_KM_LIB_W8.arm32
+PATH_SDK_WINSDK10_KM_LIB_W8.arm32 := $(PATH_SDK_WINSDK10_BASE_LIB)/win8/km/arm
+endif
+ifndef PATH_SDK_WINSDK10_KM_LIB_W8.x86
+PATH_SDK_WINSDK10_KM_LIB_W8.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/win8/km/x86
+endif
+PATH_SDK_WINSDK10_KM_LIB_W8 = $(PATH_SDK_WINSDK10_KM_LIB_W8.$(KBUILD_TARGET_ARCH))
+
+# Kernel-mode API libraries for Windows 8.1 (WDK).
+ifndef PATH_SDK_WINSDK10_KM_LIB_W81.amd64
+PATH_SDK_WINSDK10_KM_LIB_W81.amd64 := $(PATH_SDK_WINSDK10_BASE_LIB)/winv6.3/km/x64
+endif
+ifndef PATH_SDK_WINSDK10_KM_LIB_W81.arm32
+PATH_SDK_WINSDK10_KM_LIB_W81.arm32 := $(PATH_SDK_WINSDK10_BASE_LIB)/winv6.3/km/arm
+endif
+ifndef PATH_SDK_WINSDK10_KM_LIB_W81.x86
+PATH_SDK_WINSDK10_KM_LIB_W81.x86 := $(PATH_SDK_WINSDK10_BASE_LIB)/winv6.3/km/x86
+endif
+PATH_SDK_WINSDK10_KM_LIB_W81 = $(PATH_SDK_WINSDK10_KM_LIB_W81.$(KBUILD_TARGET_ARCH))
+
+# Binary directory for host.
+ifndef PATH_SDK_WINSDK10_BIN
+ ifeq ($(KBUILD_HOST_ARCH),amd64)
+PATH_SDK_WINSDK10_BIN := $(PATH_SDK_WINSDK10_BASE_BIN)/$(SDK_WINSDK10_VERSION)/x64
+ else ifeq ($(KBUILD_HOST_ARCH),arm)
+PATH_SDK_WINSDK10_BIN := $(PATH_SDK_WINSDK10_BASE_BIN)/$(SDK_WINSDK10_VERSION)/arm
+ else
+PATH_SDK_WINSDK10_BIN := $(PATH_SDK_WINSDK10_BASE_BIN)/$(SDK_WINSDK10_VERSION)/$(KBUILD_HOST_ARCH)
+ endif
+endif
+
+#
+# Properties used by kBuild.
+#
+SDK_WINSDK10_INCS ?= \
+ $(PATH_SDK_WINSDK10_UM_INC) \
+ $(PATH_SDK_WINSDK10_SHARED_INC)
+SDK_WINSDK10_LIBPATH.amd64 ?= $(PATH_SDK_WINSDK10_UM_LIB.amd64)
+SDK_WINSDK10_LIBPATH.arm32 ?= $(PATH_SDK_WINSDK10_UM_LIB.arm32)
+SDK_WINSDK10_LIBPATH.arm64 ?= $(PATH_SDK_WINSDK10_UM_LIB.arm64)
+SDK_WINSDK10_LIBPATH.x86 ?= $(PATH_SDK_WINSDK10_UM_LIB.x86)
+ifndef SDK_WINSDK10_LIBS.amd64
+SDK_WINSDK10_LIBS.amd64 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.amd64)/,$(SDK_WINSDK10_UM_LIB_NAMES))
+endif
+ifndef SDK_WINSDK10_LIBS.arm32
+SDK_WINSDK10_LIBS.arm32 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.arm32)/,$(SDK_WINSDK10_UM_LIB_NAMES))
+endif
+ifndef SDK_WINSDK10_LIBS.arm64
+SDK_WINSDK10_LIBS.arm64 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.arm64)/,$(SDK_WINSDK10_UM_LIB_NAMES))
+endif
+ifndef SDK_WINSDK10_LIBS.x86
+SDK_WINSDK10_LIBS.x86 := $(addprefix $(PATH_SDK_WINSDK10_UM_LIB.x86)/,$(SDK_WINSDK10_UM_LIB_NAMES))
+endif
+