summaryrefslogtreecommitdiffstats
path: root/kBuild
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--kBuild/footer-inherit-uses-tools.kmk4
-rwxr-xr-xkBuild/retry-10-delay-500ms.sh49
-rw-r--r--kBuild/sdks/MACOSX110.kmk5
-rw-r--r--kBuild/sdks/MACOSX120.kmk66
-rw-r--r--kBuild/sdks/MACOSX120INCS.kmk49
-rw-r--r--kBuild/sdks/MACOSX123.kmk62
-rw-r--r--kBuild/sdks/MACOSX123INCS.kmk49
-rw-r--r--kBuild/sdks/MACOSX130.kmk66
-rw-r--r--kBuild/sdks/MACOSX130INCS.kmk49
-rw-r--r--kBuild/sdks/MACOSX133.kmk63
-rw-r--r--kBuild/sdks/MACOSX133INCS.kmk49
-rw-r--r--kBuild/sdks/MACOSX140.kmk66
-rw-r--r--kBuild/sdks/MACOSX140INCS.kmk49
-rw-r--r--kBuild/sdks/MACOSX150.kmk66
-rw-r--r--kBuild/sdks/MACOSX150INCS.kmk49
-rw-r--r--kBuild/sdks/WINSDK10-UCRTD-STATIC.kmk56
-rw-r--r--kBuild/sdks/WINSDK10-UCRTD.kmk56
-rw-r--r--kBuild/tools/VCC140.kmk7
-rw-r--r--kBuild/tools/VCC140AMD64.kmk9
-rw-r--r--kBuild/tools/VCC140X86.kmk9
-rw-r--r--kBuild/tools/VCC141.kmk7
-rw-r--r--kBuild/tools/VCC141AMD64.kmk9
-rw-r--r--kBuild/tools/VCC141X86.kmk9
-rw-r--r--kBuild/tools/VCC142.kmk7
-rw-r--r--kBuild/tools/VCC142AMD64.kmk9
-rw-r--r--kBuild/tools/VCC142X86.kmk9
-rw-r--r--kBuild/units/qt6.kmk5
-rw-r--r--kBuild/win-common.kmk6
28 files changed, 897 insertions, 42 deletions
diff --git a/kBuild/footer-inherit-uses-tools.kmk b/kBuild/footer-inherit-uses-tools.kmk
index 85d2512..bada7f7 100644
--- a/kBuild/footer-inherit-uses-tools.kmk
+++ b/kBuild/footer-inherit-uses-tools.kmk
@@ -1,4 +1,4 @@
-# $Id: footer-inherit-uses-tools.kmk 3121 2017-10-31 10:58:59Z bird $
+# $Id: footer-inherit-uses-tools.kmk 3594 2023-06-01 21:07:11Z bird $
## @file
# kBuild - Footer - Target lists - Pass 2 - Template & Target Inheritance, Uses and Tools.
#
@@ -574,7 +574,7 @@ define def_templates_load_function
ifndef TEMPLATE_$(loading)
TEMPLATE_$(loading)_KMK_FILE := $(firstword $(foreach path, $(KBUILD_TEMPLATE_PATHS) $(KBUILD_PATH)/templates $(KBUILD_DEFAULT_PATHS), $(wildcard $(path)/$(loading).kmk)))
ifeq ($(TEMPLATE_$(loading)_KMK_FILE),)
- $(error kBuild: Cannot find include file for the template '$(loading)'! Searched: $(KBUILD_TEMPLATE_PATHS) $(KBUILD_PATH)/templates $(KBUILD_DEFAULT_PATHS))
+ $(error kBuild: Cannot find include file for the template '$(loading)'! Searched: $(KBUILD_TEMPLATE_PATHS) $(KBUILD_PATH)/templates $(KBUILD_DEFAULT_PATHS) Used by target(s): $(strip $(foreach target, $(_ALL_TARGETS),$(if-expr "$($(target)_TEMPLATE)" == "$(loading)",$(target) (in $(where $(target)_TEMPLATE)),))))
endif
include $(TEMPLATE_$(loading)_KMK_FILE)
ifndef TEMPLATE_$(loading)
diff --git a/kBuild/retry-10-delay-500ms.sh b/kBuild/retry-10-delay-500ms.sh
new file mode 100755
index 0000000..05c75d5
--- /dev/null
+++ b/kBuild/retry-10-delay-500ms.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env kmk_ash
+# $Id: retry-10-delay-500ms.sh 3597 2023-06-16 20:56:17Z bird $
+## @file
+# kBuild Helper Script - Retry execution of command 10 times with 0.5 seconds delay.
+#
+
+#
+# Copyright (c) 2023 knut st. osmundsen <bird-kBuild-spam-xxiii@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.
+#
+#
+
+# First try...
+"$@" && exit 0
+MY_EXITCODE=$?
+
+# Retry up to five times with a little delay between each.
+for MY_RETRY in 1 2 3 4 5 6 7 8 9;
+do
+ echo "retry-10-delay-500ms.sh: Retry #${MY_RETRY} failed: ${MY_EXITCODE} (cmd: $*)"
+ kmk_sleep 500ms
+ "$@" && exit 0
+ MY_EXITCODE=$?
+done
+echo "retry-10-delay-500ms.sh: Giving up after 10 tries: ${MY_EXITCODE} (cmd: $*)" >&2
+exit ${MY_EXITCODE}
+
diff --git a/kBuild/sdks/MACOSX110.kmk b/kBuild/sdks/MACOSX110.kmk
index 1715f80..e9ee5f9 100644
--- a/kBuild/sdks/MACOSX110.kmk
+++ b/kBuild/sdks/MACOSX110.kmk
@@ -1,4 +1,4 @@
-# $Id: MACOSX110.kmk 3495 2020-12-23 20:18:20Z bird $
+# $Id: MACOSX110.kmk 3603 2024-01-23 09:43:42Z bird $
## @file
# kBuild SDK - Mac OS X v11.0 SDK.
#
@@ -49,7 +49,8 @@ ifeq ($(PATH_SDK_MACOSX110),)
endif
## The MAC_OS_X_VERSION_MIN_REQUIRED and MAC_OS_X_VERSION_MAX_ALLOWED value for this SDK.
-SDK_MACOSX110_VERSION_VALUE := 110000
+SDK_MACOSX110_VERSION_ARG := 11.0
+SDK_MACOSX110_VERSION_VALUE := $(subst .,,$(SDK_MACOSX110_VERSION_ARG))000
# General Properties (used by kBuild)
# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
diff --git a/kBuild/sdks/MACOSX120.kmk b/kBuild/sdks/MACOSX120.kmk
new file mode 100644
index 0000000..106b411
--- /dev/null
+++ b/kBuild/sdks/MACOSX120.kmk
@@ -0,0 +1,66 @@
+# $Id: MACOSX120.kmk 3603 2024-01-23 09:43:42Z bird $
+## @file
+# kBuild SDK - Mac OS X v12.0 SDK.
+#
+
+#
+# Copyright (c) 2008-2024 knut st. osmundsen <bird-kBuild-spam-xxiii@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-1201 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_MACOSX120 := Mac OS X v12.0 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX120
+ PATH_SDK_MACOSX120 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX12.0.sdk)
+ ifndef PATH_SDK_MACOSX120
+ PATH_SDK_MACOSX120 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX12.sdk)
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX120 := $(PATH_SDK_MACOSX120)
+endif
+ifeq ($(PATH_SDK_MACOSX120),)
+ $(warning $(call DARWINCMN_FN_ERROR_MACOSX_SDK,MacOSX12.0.sdk))
+endif
+
+## The MAC_OS_X_VERSION_MIN_REQUIRED and -mmacosx-version-min values for this SDK.
+SDK_MACOSX120_VERSION_ARG := 12.0
+SDK_MACOSX120_VERSION_VALUE := $(subst .,,$(SDK_MACOSX120_VERSION_ARG))000
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX120_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=$(SDK_MACOSX120_VERSION_VALUE)
+SDK_MACOSX120_CFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX120_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX120)"
+SDK_MACOSX120_CXXFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX120_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX120)"
+SDK_MACOSX120_OBJCFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX120_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX120)"
+SDK_MACOSX120_OBJCXXFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX120_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX120)"
+SDK_MACOSX120_LDFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX120_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX120)"
+
diff --git a/kBuild/sdks/MACOSX120INCS.kmk b/kBuild/sdks/MACOSX120INCS.kmk
new file mode 100644
index 0000000..7caaf39
--- /dev/null
+++ b/kBuild/sdks/MACOSX120INCS.kmk
@@ -0,0 +1,49 @@
+# $Id: MACOSX120INCS.kmk 3602 2024-01-23 09:35:29Z bird $
+## @file
+# kBuild SDK - Mac OS X v12.0 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2024 knut st. osmundsen <bird-kBuild-spam-xxiii@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-1201 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_MACOSX120
+ include $(KBUILD_PATH)/sdks/MACOSX120.kmk
+endif
+
+SDK_MACOSX120INCS := Mac OS X v12.0 SDK, include only.
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX120INCS
+ PATH_SDK_MACOSX120INCS := $(PATH_SDK_MACOSX120)
+else
+ PATH_SDK_MACOSX120INCS := $(PATH_SDK_MACOSX120INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX120INCS_INCS = $(PATH_SDK_MACOSX120INCS)/usr/include
+
diff --git a/kBuild/sdks/MACOSX123.kmk b/kBuild/sdks/MACOSX123.kmk
new file mode 100644
index 0000000..670de9d
--- /dev/null
+++ b/kBuild/sdks/MACOSX123.kmk
@@ -0,0 +1,62 @@
+# $Id: MACOSX123.kmk 3596 2023-06-14 08:11:45Z bird $
+## @file
+# kBuild SDK - Mac OS X v12.3 SDK.
+#
+
+#
+# Copyright (c) 2008-2023 knut st. osmundsen <bird-kBuild-spam-xxiii@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_MACOSX123 := Mac OS X v12.3 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX123
+ PATH_SDK_MACOSX123 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX12.3.sdk)
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX123 := $(PATH_SDK_MACOSX123)
+endif
+ifeq ($(PATH_SDK_MACOSX123),)
+ $(warning $(call DARWINCMN_FN_ERROR_MACOSX_SDK,MacOSX12.3.sdk))
+endif
+
+## The MAC_OS_X_VERSION_MIN_REQUIRED and MAC_OS_X_VERSION_MAX_ALLOWED value for this SDK.
+SDK_MACOSX123_VERSION_VALUE := 123000
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX123_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=$(SDK_MACOSX123_VERSION_VALUE)
+SDK_MACOSX123_CFLAGS ?= -mmacosx-version-min=12.3 -isysroot "$(PATH_SDK_MACOSX123)"
+SDK_MACOSX123_CXXFLAGS ?= -mmacosx-version-min=12.3 -isysroot "$(PATH_SDK_MACOSX123)"
+SDK_MACOSX123_OBJCFLAGS ?= -mmacosx-version-min=12.3 -isysroot "$(PATH_SDK_MACOSX123)"
+SDK_MACOSX123_OBJCXXFLAGS ?= -mmacosx-version-min=12.3 -isysroot "$(PATH_SDK_MACOSX123)"
+SDK_MACOSX123_LDFLAGS ?= -mmacosx-version-min=12.3 -isysroot "$(PATH_SDK_MACOSX123)"
+
diff --git a/kBuild/sdks/MACOSX123INCS.kmk b/kBuild/sdks/MACOSX123INCS.kmk
new file mode 100644
index 0000000..9e22ccb
--- /dev/null
+++ b/kBuild/sdks/MACOSX123INCS.kmk
@@ -0,0 +1,49 @@
+# $Id: MACOSX123INCS.kmk 3596 2023-06-14 08:11:45Z bird $
+## @file
+# kBuild SDK - Mac OS X v12.3 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2023 knut st. osmundsen <bird-kBuild-spam-xxiii@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_MACOSX123
+ include $(KBUILD_PATH)/sdks/MACOSX123.kmk
+endif
+
+SDK_MACOSX123INCS := Mac OS X v12.3 SDK, include only.
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX123INCS
+ PATH_SDK_MACOSX123INCS := $(PATH_SDK_MACOSX123)
+else
+ PATH_SDK_MACOSX123INCS := $(PATH_SDK_MACOSX123INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX123INCS_INCS = $(PATH_SDK_MACOSX123INCS)/usr/include
+
diff --git a/kBuild/sdks/MACOSX130.kmk b/kBuild/sdks/MACOSX130.kmk
new file mode 100644
index 0000000..8cf8784
--- /dev/null
+++ b/kBuild/sdks/MACOSX130.kmk
@@ -0,0 +1,66 @@
+# $Id: MACOSX130.kmk 3603 2024-01-23 09:43:42Z bird $
+## @file
+# kBuild SDK - Mac OS X v13.0 SDK.
+#
+
+#
+# Copyright (c) 2008-2024 knut st. osmundsen <bird-kBuild-spam-xxiii@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_MACOSX130 := Mac OS X v13.0 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX130
+ PATH_SDK_MACOSX130 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX13.0.sdk)
+ ifndef PATH_SDK_MACOSX130
+ PATH_SDK_MACOSX130 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX13.sdk)
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX130 := $(PATH_SDK_MACOSX130)
+endif
+ifeq ($(PATH_SDK_MACOSX130),)
+ $(warning $(call DARWINCMN_FN_ERROR_MACOSX_SDK,MacOSX13.0.sdk))
+endif
+
+## The MAC_OS_X_VERSION_MIN_REQUIRED and -mmacosx-version-min values for this SDK.
+SDK_MACOSX130_VERSION_ARG := 13.0
+SDK_MACOSX130_VERSION_VALUE := $(subst .,,$(SDK_MACOSX130_VERSION_ARG))000
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX130_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=$(SDK_MACOSX130_VERSION_VALUE)
+SDK_MACOSX130_CFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX130_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX130)"
+SDK_MACOSX130_CXXFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX130_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX130)"
+SDK_MACOSX130_OBJCFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX130_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX130)"
+SDK_MACOSX130_OBJCXXFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX130_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX130)"
+SDK_MACOSX130_LDFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX130_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX130)"
+
diff --git a/kBuild/sdks/MACOSX130INCS.kmk b/kBuild/sdks/MACOSX130INCS.kmk
new file mode 100644
index 0000000..daa4072
--- /dev/null
+++ b/kBuild/sdks/MACOSX130INCS.kmk
@@ -0,0 +1,49 @@
+# $Id: MACOSX130INCS.kmk 3602 2024-01-23 09:35:29Z bird $
+## @file
+# kBuild SDK - Mac OS X v13.0 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2024 knut st. osmundsen <bird-kBuild-spam-xxiii@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_MACOSX130
+ include $(KBUILD_PATH)/sdks/MACOSX130.kmk
+endif
+
+SDK_MACOSX130INCS := Mac OS X v13.0 SDK, include only.
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX130INCS
+ PATH_SDK_MACOSX130INCS := $(PATH_SDK_MACOSX130)
+else
+ PATH_SDK_MACOSX130INCS := $(PATH_SDK_MACOSX130INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX130INCS_INCS = $(PATH_SDK_MACOSX130INCS)/usr/include
+
diff --git a/kBuild/sdks/MACOSX133.kmk b/kBuild/sdks/MACOSX133.kmk
new file mode 100644
index 0000000..bc4918f
--- /dev/null
+++ b/kBuild/sdks/MACOSX133.kmk
@@ -0,0 +1,63 @@
+# $Id: MACOSX133.kmk 3603 2024-01-23 09:43:42Z bird $
+## @file
+# kBuild SDK - Mac OS X v13.3 SDK.
+#
+
+#
+# Copyright (c) 2008-2024 knut st. osmundsen <bird-kBuild-spam-xxiii@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_MACOSX133 := Mac OS X v13.3 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX133
+ PATH_SDK_MACOSX133 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX13.3.sdk)
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX133 := $(PATH_SDK_MACOSX133)
+endif
+ifeq ($(PATH_SDK_MACOSX133),)
+ $(warning $(call DARWINCMN_FN_ERROR_MACOSX_SDK,MacOSX13.3.sdk))
+endif
+
+## The MAC_OS_X_VERSION_MIN_REQUIRED and -mmacosx-version-min values for this SDK.
+SDK_MACOSX133_VERSION_ARG := 13.3
+SDK_MACOSX133_VERSION_VALUE := $(subst .,,$(SDK_MACOSX133_VERSION_ARG))000
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX133_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=$(SDK_MACOSX133_VERSION_VALUE)
+SDK_MACOSX133_CFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX133_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX133)"
+SDK_MACOSX133_CXXFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX133_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX133)"
+SDK_MACOSX133_OBJCFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX133_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX133)"
+SDK_MACOSX133_OBJCXXFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX133_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX133)"
+SDK_MACOSX133_LDFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX133_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX133)"
+
diff --git a/kBuild/sdks/MACOSX133INCS.kmk b/kBuild/sdks/MACOSX133INCS.kmk
new file mode 100644
index 0000000..ff81a71
--- /dev/null
+++ b/kBuild/sdks/MACOSX133INCS.kmk
@@ -0,0 +1,49 @@
+# $Id: MACOSX133INCS.kmk 3602 2024-01-23 09:35:29Z bird $
+## @file
+# kBuild SDK - Mac OS X v13.3 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2024 knut st. osmundsen <bird-kBuild-spam-xxiii@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_MACOSX133
+ include $(KBUILD_PATH)/sdks/MACOSX133.kmk
+endif
+
+SDK_MACOSX133INCS := Mac OS X v13.3 SDK, include only.
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX133INCS
+ PATH_SDK_MACOSX133INCS := $(PATH_SDK_MACOSX133)
+else
+ PATH_SDK_MACOSX133INCS := $(PATH_SDK_MACOSX133INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX133INCS_INCS = $(PATH_SDK_MACOSX133INCS)/usr/include
+
diff --git a/kBuild/sdks/MACOSX140.kmk b/kBuild/sdks/MACOSX140.kmk
new file mode 100644
index 0000000..a9cd164
--- /dev/null
+++ b/kBuild/sdks/MACOSX140.kmk
@@ -0,0 +1,66 @@
+# $Id: MACOSX140.kmk 3603 2024-01-23 09:43:42Z bird $
+## @file
+# kBuild SDK - Mac OS X v14.0 SDK.
+#
+
+#
+# Copyright (c) 2008-2024 knut st. osmundsen <bird-kBuild-spam-xxiii@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-1401 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_MACOSX140 := Mac OS X v14.0 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX140
+ PATH_SDK_MACOSX140 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX14.0.sdk)
+ ifndef PATH_SDK_MACOSX140
+ PATH_SDK_MACOSX140 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX14.sdk)
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX140 := $(PATH_SDK_MACOSX140)
+endif
+ifeq ($(PATH_SDK_MACOSX140),)
+ $(warning $(call DARWINCMN_FN_ERROR_MACOSX_SDK,MacOSX14.0.sdk))
+endif
+
+## The MAC_OS_X_VERSION_MIN_REQUIRED and -mmacosx-version-min values for this SDK.
+SDK_MACOSX140_VERSION_ARG := 14.0
+SDK_MACOSX140_VERSION_VALUE := $(subst .,,$(SDK_MACOSX140_VERSION_ARG))000
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX140_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=$(SDK_MACOSX140_VERSION_VALUE)
+SDK_MACOSX140_CFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX140_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX140)"
+SDK_MACOSX140_CXXFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX140_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX140)"
+SDK_MACOSX140_OBJCFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX140_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX140)"
+SDK_MACOSX140_OBJCXXFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX140_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX140)"
+SDK_MACOSX140_LDFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX140_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX140)"
+
diff --git a/kBuild/sdks/MACOSX140INCS.kmk b/kBuild/sdks/MACOSX140INCS.kmk
new file mode 100644
index 0000000..7072d13
--- /dev/null
+++ b/kBuild/sdks/MACOSX140INCS.kmk
@@ -0,0 +1,49 @@
+# $Id: MACOSX140INCS.kmk 3602 2024-01-23 09:35:29Z bird $
+## @file
+# kBuild SDK - Mac OS X v14.0 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2024 knut st. osmundsen <bird-kBuild-spam-xxiii@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-1401 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_MACOSX140
+ include $(KBUILD_PATH)/sdks/MACOSX140.kmk
+endif
+
+SDK_MACOSX140INCS := Mac OS X v14.0 SDK, include only.
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX140INCS
+ PATH_SDK_MACOSX140INCS := $(PATH_SDK_MACOSX140)
+else
+ PATH_SDK_MACOSX140INCS := $(PATH_SDK_MACOSX140INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX140INCS_INCS = $(PATH_SDK_MACOSX140INCS)/usr/include
+
diff --git a/kBuild/sdks/MACOSX150.kmk b/kBuild/sdks/MACOSX150.kmk
new file mode 100644
index 0000000..39f4972
--- /dev/null
+++ b/kBuild/sdks/MACOSX150.kmk
@@ -0,0 +1,66 @@
+# $Id: MACOSX150.kmk 3603 2024-01-23 09:43:42Z bird $
+## @file
+# kBuild SDK - Mac OS X v15.0 SDK.
+#
+
+#
+# Copyright (c) 2008-2024 knut st. osmundsen <bird-kBuild-spam-xxiii@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-1501 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_MACOSX150 := Mac OS X v15.0 SDK
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX150
+ PATH_SDK_MACOSX150 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX15.0.sdk)
+ ifndef PATH_SDK_MACOSX150
+ PATH_SDK_MACOSX150 := $(call DARWINCMN_FN_FIND_MACOSX_SDK,MacOSX15.sdk)
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_SDK_MACOSX150 := $(PATH_SDK_MACOSX150)
+endif
+ifeq ($(PATH_SDK_MACOSX150),)
+ $(warning $(call DARWINCMN_FN_ERROR_MACOSX_SDK,MacOSX15.0.sdk))
+endif
+
+## The MAC_OS_X_VERSION_MIN_REQUIRED and -mmacosx-version-min values for this SDK.
+SDK_MACOSX150_VERSION_ARG := 15.0
+SDK_MACOSX150_VERSION_VALUE := $(subst .,,$(SDK_MACOSX150_VERSION_ARG))000
+
+# General Properties (used by kBuild)
+# Note: The MAC_OS_X_VERSION_MAX_ALLOWED is left free for the SDK user to define.
+SDK_MACOSX150_DEFS ?= MAC_OS_X_VERSION_MIN_REQUIRED=$(SDK_MACOSX150_VERSION_VALUE)
+SDK_MACOSX150_CFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX150_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX150)"
+SDK_MACOSX150_CXXFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX150_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX150)"
+SDK_MACOSX150_OBJCFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX150_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX150)"
+SDK_MACOSX150_OBJCXXFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX150_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX150)"
+SDK_MACOSX150_LDFLAGS ?= -mmacosx-version-min=$(SDK_MACOSX150_VERSION_ARG) -isysroot "$(PATH_SDK_MACOSX150)"
+
diff --git a/kBuild/sdks/MACOSX150INCS.kmk b/kBuild/sdks/MACOSX150INCS.kmk
new file mode 100644
index 0000000..b37b32b
--- /dev/null
+++ b/kBuild/sdks/MACOSX150INCS.kmk
@@ -0,0 +1,49 @@
+# $Id: MACOSX150INCS.kmk 3602 2024-01-23 09:35:29Z bird $
+## @file
+# kBuild SDK - Mac OS X v15.0 SDK, includes only.
+#
+
+#
+# Copyright (c) 2008-2024 knut st. osmundsen <bird-kBuild-spam-xxiii@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-1501 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_MACOSX150
+ include $(KBUILD_PATH)/sdks/MACOSX150.kmk
+endif
+
+SDK_MACOSX150INCS := Mac OS X v15.0 SDK, include only.
+
+# SDK Specific Properties
+ifndef PATH_SDK_MACOSX150INCS
+ PATH_SDK_MACOSX150INCS := $(PATH_SDK_MACOSX150)
+else
+ PATH_SDK_MACOSX150INCS := $(PATH_SDK_MACOSX150INCS)
+endif
+
+# General Properties (used by kBuild)
+SDK_MACOSX150INCS_INCS = $(PATH_SDK_MACOSX150INCS)/usr/include
+
diff --git a/kBuild/sdks/WINSDK10-UCRTD-STATIC.kmk b/kBuild/sdks/WINSDK10-UCRTD-STATIC.kmk
new file mode 100644
index 0000000..7f21136
--- /dev/null
+++ b/kBuild/sdks/WINSDK10-UCRTD-STATIC.kmk
@@ -0,0 +1,56 @@
+# $Id: WINSDK10-UCRTD-STATIC.kmk 3590 2023-04-19 12:35:45Z bird $
+## @file
+# kBuild SDK - Derives from WINSDK10.kmk, Universal CRT, static debug library 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-UCRTD-STATIC := The Microsoft Windows 10 SDK, Universal CRT, static debug library linking.
+SDK_WINSDK10-UCRTD-STATIC_INCS ?= $(PATH_SDK_WINSDK10_UCRT_INC)
+SDK_WINSDK10-UCRTD-STATIC_LIBPATH.x86 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.x86)
+SDK_WINSDK10-UCRTD-STATIC_LIBPATH.amd64 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.amd64)
+SDK_WINSDK10-UCRTD-STATIC_LIBPATH.arm32 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)
+SDK_WINSDK10-UCRTD-STATIC_LIBPATH.arm64 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.arm64)
+ifndef SDK_WINSDK10-UCRTD-STATIC_LIBS.amd64
+SDK_WINSDK10-UCRTD-STATIC_LIBS.amd64 := $(PATH_SDK_WINSDK10_UCRT_LIB.amd64)/$(SDK_WINSDK10_UCRT_STATIC_DBG_NAME)
+endif
+ifndef SDK_WINSDK10-UCRTD-STATIC_LIBS.arm32
+SDK_WINSDK10-UCRTD-STATIC_LIBS.arm32 := $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)/$(SDK_WINSDK10_UCRT_STATIC_DBG_NAME)
+endif
+ifndef SDK_WINSDK10-UCRTD-STATIC_LIBS.arm64
+SDK_WINSDK10-UCRTD-STATIC_LIBS.arm64 := $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)/$(SDK_WINSDK10_UCRT_STATIC_DBG_NAME)
+endif
+ifndef SDK_WINSDK10-UCRTD-STATIC_LIBS.x86
+SDK_WINSDK10-UCRTD-STATIC_LIBS.x86 := $(PATH_SDK_WINSDK10_UCRT_LIB.x86)/$(SDK_WINSDK10_UCRT_STATIC_DBG_NAME)
+endif
+
diff --git a/kBuild/sdks/WINSDK10-UCRTD.kmk b/kBuild/sdks/WINSDK10-UCRTD.kmk
new file mode 100644
index 0000000..b6dad5f
--- /dev/null
+++ b/kBuild/sdks/WINSDK10-UCRTD.kmk
@@ -0,0 +1,56 @@
+# $Id: WINSDK10-UCRTD.kmk 3590 2023-04-19 12:35:45Z bird $
+## @file
+# kBuild SDK - Derives from WINSDK10.kmk, Universal CRT, Debug 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-UCRTD := The Microsoft Windows 10 SDK, Universal CRT, Debug DLL linking.
+SDK_WINSDK10-UCRTD_INCS ?= $(PATH_SDK_WINSDK10_UCRT_INC)
+SDK_WINSDK10-UCRTD_LIBPATH.x86 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.x86)
+SDK_WINSDK10-UCRTD_LIBPATH.amd64 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.amd64)
+SDK_WINSDK10-UCRTD_LIBPATH.arm32 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)
+SDK_WINSDK10-UCRTD_LIBPATH.arm64 ?= $(PATH_SDK_WINSDK10_UCRT_LIB.arm64)
+ifndef SDK_WINSDK10-UCRTD_LIBS.amd64
+SDK_WINSDK10-UCRTD_LIBS.amd64 := $(PATH_SDK_WINSDK10_UCRT_LIB.amd64)/$(SDK_WINSDK10_UCRT_IMPLIB_DBG_NAME)
+endif
+ifndef SDK_WINSDK10-UCRTD_LIBS.arm32
+SDK_WINSDK10-UCRTD_LIBS.arm32 := $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)/$(SDK_WINSDK10_UCRT_IMPLIB_DBG_NAME)
+endif
+ifndef SDK_WINSDK10-UCRTD_LIBS.arm64
+SDK_WINSDK10-UCRTD_LIBS.arm64 := $(PATH_SDK_WINSDK10_UCRT_LIB.arm32)/$(SDK_WINSDK10_UCRT_IMPLIB_DBG_NAME)
+endif
+ifndef SDK_WINSDK10-UCRTD_LIBS.x86
+SDK_WINSDK10-UCRTD_LIBS.x86 := $(PATH_SDK_WINSDK10_UCRT_LIB.x86)/$(SDK_WINSDK10_UCRT_IMPLIB_DBG_NAME)
+endif
+
diff --git a/kBuild/tools/VCC140.kmk b/kBuild/tools/VCC140.kmk
index 6c222a7..97e9ff5 100644
--- a/kBuild/tools/VCC140.kmk
+++ b/kBuild/tools/VCC140.kmk
@@ -1,4 +1,4 @@
-# $Id: VCC140.kmk 3343 2020-05-20 14:34:15Z bird $
+# $Id: VCC140.kmk 3597 2023-06-16 20:56:17Z bird $
## @file
# kBuild Tool Config - Visual C++ 14.0 (aka Visual 2015 and MSC v19.0x), default target.
#
@@ -128,8 +128,9 @@ TOOL_VCC140_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/link.exe
TOOL_VCC140_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/dumpbin.exe
TOOL_VCC140_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140_BIN_QSH)/editbin.exe
-TOOL_VCC140_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC140_RC_CACHED)
-TOOL_VCC140_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC140_MT_CACHED)
+TOOL_VCC140_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC140_RC_CACHED)
+TOOL_VCC140_MT ?= $(TOOL_VCC140_MT_RETRY) $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC140_MT_CACHED)
+TOOL_VCC140_MT_RETRY ?= $(WINCMN_MT_RETRY)
undefine TOOL_VCC140_USE_KSUBMIT # for now
ifdef TOOL_VCC140_USE_KSUBMIT
diff --git a/kBuild/tools/VCC140AMD64.kmk b/kBuild/tools/VCC140AMD64.kmk
index 9e35463..579c7af 100644
--- a/kBuild/tools/VCC140AMD64.kmk
+++ b/kBuild/tools/VCC140AMD64.kmk
@@ -1,4 +1,4 @@
-# $Id: VCC140AMD64.kmk 3343 2020-05-20 14:34:15Z bird $
+# $Id: VCC140AMD64.kmk 3597 2023-06-16 20:56:17Z bird $
## @file
# kBuild Tool Config - Visual C++ 14.0 (aka Visual 2015 and MSC v19.0x), targeting AMD64.
#
@@ -85,8 +85,9 @@ TOOL_VCC140AMD64_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140AMD64_BIN_QSH)/l
TOOL_VCC140AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140AMD64_BIN_QSH)/dumpbin.exe
TOOL_VCC140AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140AMD64_BIN_QSH)/editbin.exe
-TOOL_VCC140AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC140_RC_CACHED)
-TOOL_VCC140AMD64_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC140_MT_CACHED)
+TOOL_VCC140AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC140_RC_CACHED)
+TOOL_VCC140AMD64_MT ?= $(TOOL_VCC140AMD64_MT_RETRY) $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC140_MT_CACHED)
+TOOL_VCC140AMD64_MT_RETRY ?= $(TOOL_VCC140_MT_RETRY)
undefine TOOL_VCC140AMD64_USE_KSUBMIT # for now
ifdef TOOL_VCC140AMD64_USE_KSUBMIT
@@ -113,7 +114,7 @@ endif
PATH_TOOL_VCC140AMD64_REDIST ?= $(PATH_TOOL_VCC140_REDIST)/x64
PATH_TOOL_VCC140AMD64_REDIST_CRT = $(PATH_TOOL_VCC140AMD64_REDIST)/$(TOOL_VCC140_REDIST_CRT_SUBDIR)
PATH_TOOL_VCC140AMD64_REDIST_DEBUG ?= $(PATH_TOOL_VCC140_REDIST_DEBUG)/x64
-PATH_TOOL_VCC140AMD64_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC140AMD64_REDIST_DEBUG)/$(TOOL_VCC140_REDIST_CRT_SUBDIR)
+PATH_TOOL_VCC140AMD64_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC140AMD64_REDIST_DEBUG)/$(TOOL_VCC140_REDIST_DEBUG_CRT_SUBDIR)
TOOL_VCC140AMD64_REDIST_CRT_DLLS = $(TOOL_VCC140_REDIST_CRT_DLLS.amd64)
TOOL_VCC140AMD64_REDIST_CONCRT_DLLS = $(TOOL_VCC140_REDIST_CONCRT_DLLS.amd64)
TOOL_VCC140AMD64_REDIST_CPP_DLLS = $(TOOL_VCC140_REDIST_CPP_DLLS.amd64)
diff --git a/kBuild/tools/VCC140X86.kmk b/kBuild/tools/VCC140X86.kmk
index 7c0e5a2..12b5ba6 100644
--- a/kBuild/tools/VCC140X86.kmk
+++ b/kBuild/tools/VCC140X86.kmk
@@ -1,4 +1,4 @@
-# $Id: VCC140X86.kmk 3343 2020-05-20 14:34:15Z bird $
+# $Id: VCC140X86.kmk 3597 2023-06-16 20:56:17Z bird $
## @file
# kBuild Tool Config - Visual C++ 14.0 (aka Visual 2015 and MSC v19.0x), targeting x86.
#
@@ -85,8 +85,9 @@ TOOL_VCC140X86_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140X86_BIN_QSH)/link.
TOOL_VCC140X86_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140X86_BIN_QSH)/dumpbin.exe
TOOL_VCC140X86_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC140X86_BIN_QSH)/editbin.exe
-TOOL_VCC140X86_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC140_RC_CACHED)
-TOOL_VCC140X86_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC140_MT_CACHED)
+TOOL_VCC140X86_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC140_RC_CACHED)
+TOOL_VCC140X86_MT ?= $(TOOL_VCC140X86_MT_RETRY) $(EXEC_X86_WIN32) $(call TOOL_VCC140_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC140_MT_CACHED)
+TOOL_VCC140X86_MT_RETRY ?= $(TOOL_VCC140_MT_RETRY)
undefine TOOL_VCC140X86_USE_KSUBMIT # for now
ifdef TOOL_VCC140X86_USE_KSUBMIT
@@ -113,7 +114,7 @@ endif
PATH_TOOL_VCC140X86_REDIST ?= $(PATH_TOOL_VCC140_REDIST)/x86
PATH_TOOL_VCC140X86_REDIST_CRT = $(PATH_TOOL_VCC140X86_REDIST)/$(TOOL_VCC140_REDIST_CRT_SUBDIR)
PATH_TOOL_VCC140X86_REDIST_DEBUG ?= $(PATH_TOOL_VCC140_REDIST_DEBUG)/x86
-PATH_TOOL_VCC140X86_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC140X86_REDIST_DEBUG)/$(TOOL_VCC140_REDIST_CRT_SUBDIR)
+PATH_TOOL_VCC140X86_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC140X86_REDIST_DEBUG)/$(TOOL_VCC140_REDIST_DEBUG_CRT_SUBDIR)
TOOL_VCC140X64_REDIST_CRT_DLLS = $(TOOL_VCC140_REDIST_CRT_DLLS.x86)
TOOL_VCC140X64_REDIST_CONCRT_DLLS = $(TOOL_VCC140_REDIST_CONCRT_DLLS.x86)
TOOL_VCC140X64_REDIST_CPP_DLLS = $(TOOL_VCC140_REDIST_CPP_DLLS.x86)
diff --git a/kBuild/tools/VCC141.kmk b/kBuild/tools/VCC141.kmk
index d7b19d7..f508edd 100644
--- a/kBuild/tools/VCC141.kmk
+++ b/kBuild/tools/VCC141.kmk
@@ -1,4 +1,4 @@
-# $Id: VCC141.kmk 3342 2020-05-20 14:33:53Z bird $
+# $Id: VCC141.kmk 3597 2023-06-16 20:56:17Z bird $
## @file
# kBuild Tool Config - Visual C++ 14.1 (aka Visual 2017 and MSC v19.10), default target.
#
@@ -118,8 +118,9 @@ TOOL_VCC141_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/link.exe
TOOL_VCC141_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/dumpbin.exe
TOOL_VCC141_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141_BIN_QSH)/editbin.exe
-TOOL_VCC141_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED)
-TOOL_VCC141_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED)
+TOOL_VCC141_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED)
+TOOL_VCC141_MT ?= $(TOOL_VCC141_MT_RETRY) $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED)
+TOOL_VCC141_MT_RETRY ?= $(WINCMN_MT_RETRY)
undefine TOOL_VCC141_USE_KSUBMIT # for now
ifdef TOOL_VCC141_USE_KSUBMIT
diff --git a/kBuild/tools/VCC141AMD64.kmk b/kBuild/tools/VCC141AMD64.kmk
index 94cf413..d216e58 100644
--- a/kBuild/tools/VCC141AMD64.kmk
+++ b/kBuild/tools/VCC141AMD64.kmk
@@ -1,4 +1,4 @@
-# $Id: VCC141AMD64.kmk 3346 2020-05-22 20:56:11Z bird $
+# $Id: VCC141AMD64.kmk 3597 2023-06-16 20:56:17Z bird $
## @file
# kBuild Tool Config - Visual C++ 14.1 (aka Visual 2017 and MSC v19.10), targeting AMD64.
#
@@ -88,8 +88,9 @@ TOOL_VCC141AMD64_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/l
TOOL_VCC141AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/dumpbin.exe
TOOL_VCC141AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/editbin.exe
-TOOL_VCC141AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED)
-TOOL_VCC141AMD64_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED)
+TOOL_VCC141AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED)
+TOOL_VCC141AMD64_MT ?= $(TOOL_VCC141AMD64_MT_RETRY) $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED)
+TOOL_VCC141AMD64_MT_RETRY ?= $(TOOL_VCC141_MT_RETRY)
undefine TOOL_VCC141AMD64_USE_KSUBMIT # for now
ifdef TOOL_VCC141AMD64_USE_KSUBMIT
@@ -116,7 +117,7 @@ endif
PATH_TOOL_VCC141AMD64_REDIST ?= $(PATH_TOOL_VCC141_REDIST)/x64
PATH_TOOL_VCC141AMD64_REDIST_CRT = $(PATH_TOOL_VCC141AMD64_REDIST)/$(TOOL_VCC141_REDIST_CRT_SUBDIR)
PATH_TOOL_VCC141AMD64_REDIST_DEBUG ?= $(PATH_TOOL_VCC141_REDIST_DEBUG)/x64
-PATH_TOOL_VCC141AMD64_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC141AMD64_REDIST_DEBUG)/$(TOOL_VCC141_REDIST_CRT_SUBDIR)
+PATH_TOOL_VCC141AMD64_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC141AMD64_REDIST_DEBUG)/$(TOOL_VCC141_REDIST_DEBUG_CRT_SUBDIR)
TOOL_VCC141AMD64_REDIST_CRT_DLLS = $(TOOL_VCC141_REDIST_CRT_DLLS.amd64)
TOOL_VCC141AMD64_REDIST_CONCRT_DLLS = $(TOOL_VCC141_REDIST_CONCRT_DLLS.amd64)
TOOL_VCC141AMD64_REDIST_CPP_DLLS = $(TOOL_VCC141_REDIST_CPP_DLLS.amd64)
diff --git a/kBuild/tools/VCC141X86.kmk b/kBuild/tools/VCC141X86.kmk
index 8210f40..3cf2773 100644
--- a/kBuild/tools/VCC141X86.kmk
+++ b/kBuild/tools/VCC141X86.kmk
@@ -1,4 +1,4 @@
-# $Id: VCC141X86.kmk 3346 2020-05-22 20:56:11Z bird $
+# $Id: VCC141X86.kmk 3597 2023-06-16 20:56:17Z bird $
## @file
# kBuild Tool Config - Visual C++ 14.1 (aka Visual 2017 and MSC v19.10), targeting x86.
#
@@ -88,8 +88,9 @@ TOOL_VCC141X86_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141X86_BIN_QSH)/link.
TOOL_VCC141X86_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141X86_BIN_QSH)/dumpbin.exe
TOOL_VCC141X86_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141X86_BIN_QSH)/editbin.exe
-TOOL_VCC141X86_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED)
-TOOL_VCC141X86_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED)
+TOOL_VCC141X86_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED)
+TOOL_VCC141X86_MT ?= $(TOOL_VCC141X86_MT_RETRY) $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED)
+TOOL_VCC141X86_MT_RETRY ?= $(TOOL_VCC141_MT_RETRY)
undefine TOOL_VCC141X86_USE_KSUBMIT # for now
ifdef TOOL_VCC141X86_USE_KSUBMIT
@@ -116,7 +117,7 @@ endif
PATH_TOOL_VCC141X86_REDIST ?= $(PATH_TOOL_VCC141_REDIST)/x86
PATH_TOOL_VCC141X86_REDIST_CRT = $(PATH_TOOL_VCC141X86_REDIST)/$(TOOL_VCC141_REDIST_CRT_SUBDIR)
PATH_TOOL_VCC141X86_REDIST_DEBUG ?= $(PATH_TOOL_VCC141_REDIST_DEBUG)/x86
-PATH_TOOL_VCC141X86_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC141X86_REDIST_DEBUG)/$(TOOL_VCC141_REDIST_CRT_SUBDIR)
+PATH_TOOL_VCC141X86_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC141X86_REDIST_DEBUG)/$(TOOL_VCC141_REDIST_DEBUG_CRT_SUBDIR)
TOOL_VCC141X64_REDIST_CRT_DLLS = $(TOOL_VCC141_REDIST_CRT_DLLS.x86)
TOOL_VCC141X64_REDIST_CONCRT_DLLS = $(TOOL_VCC141_REDIST_CONCRT_DLLS.x86)
TOOL_VCC141X64_REDIST_CPP_DLLS = $(TOOL_VCC141_REDIST_CPP_DLLS.x86)
diff --git a/kBuild/tools/VCC142.kmk b/kBuild/tools/VCC142.kmk
index b30ee00..9a2a649 100644
--- a/kBuild/tools/VCC142.kmk
+++ b/kBuild/tools/VCC142.kmk
@@ -1,4 +1,4 @@
-# $Id: VCC142.kmk 3553 2022-01-29 02:59:56Z bird $
+# $Id: VCC142.kmk 3597 2023-06-16 20:56:17Z bird $
## @file
# kBuild Tool Config - Visual C++ 14.2 (aka Visual 2019 and MSC v19.20), default target.
#
@@ -118,8 +118,9 @@ TOOL_VCC142_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142_BIN_QSH)/link.exe
TOOL_VCC142_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142_BIN_QSH)/dumpbin.exe
TOOL_VCC142_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142_BIN_QSH)/editbin.exe
-TOOL_VCC142_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC142_RC_CACHED)
-TOOL_VCC142_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
+TOOL_VCC142_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC142_RC_CACHED)
+TOOL_VCC142_MT ?= $(TOOL_VCC142_MT_RETRY) $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
+TOOL_VCC142_MT_RETRY ?= $(WINCMN_MT_RETRY)
ifdef TOOL_VCC142_USE_KSUBMIT
ifeq ($(KBUILD_HOST),win)
diff --git a/kBuild/tools/VCC142AMD64.kmk b/kBuild/tools/VCC142AMD64.kmk
index cd2bfc6..a7acde4 100644
--- a/kBuild/tools/VCC142AMD64.kmk
+++ b/kBuild/tools/VCC142AMD64.kmk
@@ -1,4 +1,4 @@
-# $Id: VCC142AMD64.kmk 3370 2020-06-10 10:45:05Z bird $
+# $Id: VCC142AMD64.kmk 3597 2023-06-16 20:56:17Z bird $
## @file
# kBuild Tool Config - Visual C++ 14.2 (aka Visual 2019 and MSC v19.20), targeting AMD64.
#
@@ -88,8 +88,9 @@ TOOL_VCC142AMD64_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142AMD64_BIN_QSH)/l
TOOL_VCC142AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142AMD64_BIN_QSH)/dumpbin.exe
TOOL_VCC142AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142AMD64_BIN_QSH)/editbin.exe
-TOOL_VCC142AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC142_RC_CACHED)
-TOOL_VCC142AMD64_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
+TOOL_VCC142AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC142_RC_CACHED)
+TOOL_VCC142AMD64_MT ?= $(TOOL_VCC142AMD64_MT_RETRY) $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
+TOOL_VCC142AMD64_MT_RETRY ?= $(TOOL_VCC142_MT_RETRY)
ifdef TOOL_VCC142AMD64_USE_KSUBMIT
ifeq ($(KBUILD_HOST),win)
@@ -115,7 +116,7 @@ endif
PATH_TOOL_VCC142AMD64_REDIST ?= $(PATH_TOOL_VCC142_REDIST)/x64
PATH_TOOL_VCC142AMD64_REDIST_CRT = $(PATH_TOOL_VCC142AMD64_REDIST)/$(TOOL_VCC142_REDIST_CRT_SUBDIR)
PATH_TOOL_VCC142AMD64_REDIST_DEBUG ?= $(PATH_TOOL_VCC142_REDIST_DEBUG)/x64
-PATH_TOOL_VCC142AMD64_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC142AMD64_REDIST_DEBUG)/$(TOOL_VCC142_REDIST_CRT_SUBDIR)
+PATH_TOOL_VCC142AMD64_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC142AMD64_REDIST_DEBUG)/$(TOOL_VCC142_REDIST_DEBUG_CRT_SUBDIR)
TOOL_VCC142AMD64_REDIST_CRT_DLLS = $(TOOL_VCC142_REDIST_CRT_DLLS.amd64)
TOOL_VCC142AMD64_REDIST_CONCRT_DLLS = $(TOOL_VCC142_REDIST_CONCRT_DLLS.amd64)
TOOL_VCC142AMD64_REDIST_CPP_DLLS = $(TOOL_VCC142_REDIST_CPP_DLLS.amd64)
diff --git a/kBuild/tools/VCC142X86.kmk b/kBuild/tools/VCC142X86.kmk
index 8720fe6..3021d50 100644
--- a/kBuild/tools/VCC142X86.kmk
+++ b/kBuild/tools/VCC142X86.kmk
@@ -1,4 +1,4 @@
-# $Id: VCC142X86.kmk 3370 2020-06-10 10:45:05Z bird $
+# $Id: VCC142X86.kmk 3597 2023-06-16 20:56:17Z bird $
## @file
# kBuild Tool Config - Visual C++ 14.2 (aka Visual 2019 and MSC v19.20), targeting x86.
#
@@ -88,8 +88,9 @@ TOOL_VCC142X86_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142X86_BIN_QSH)/link.
TOOL_VCC142X86_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142X86_BIN_QSH)/dumpbin.exe
TOOL_VCC142X86_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC142X86_BIN_QSH)/editbin.exe
-TOOL_VCC142X86_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC142_RC_CACHED)
-TOOL_VCC142X86_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
+TOOL_VCC142X86_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC142_RC_CACHED)
+TOOL_VCC142X86_MT ?= $(TOOL_VCC142X86_MT_RETRY) $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
+TOOL_VCC142X86_MT_RETRY ?= $(TOOL_VCC142_MT_RETRY)
ifdef TOOL_VCC142X86_USE_KSUBMIT
ifeq ($(KBUILD_HOST),win)
@@ -115,7 +116,7 @@ endif
PATH_TOOL_VCC142X86_REDIST ?= $(PATH_TOOL_VCC142_REDIST)/x86
PATH_TOOL_VCC142X86_REDIST_CRT = $(PATH_TOOL_VCC142X86_REDIST)/$(TOOL_VCC142_REDIST_CRT_SUBDIR)
PATH_TOOL_VCC142X86_REDIST_DEBUG ?= $(PATH_TOOL_VCC142_REDIST_DEBUG)/x86
-PATH_TOOL_VCC142X86_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC142X86_REDIST_DEBUG)/$(TOOL_VCC142_REDIST_CRT_SUBDIR)
+PATH_TOOL_VCC142X86_REDIST_DEBUG_CRT = $(PATH_TOOL_VCC142X86_REDIST_DEBUG)/$(TOOL_VCC142_REDIST_DEBUG_CRT_SUBDIR)
TOOL_VCC142X64_REDIST_CRT_DLLS = $(TOOL_VCC142_REDIST_CRT_DLLS.x86)
TOOL_VCC142X64_REDIST_CONCRT_DLLS = $(TOOL_VCC142_REDIST_CONCRT_DLLS.x86)
TOOL_VCC142X64_REDIST_CPP_DLLS = $(TOOL_VCC142_REDIST_CPP_DLLS.x86)
diff --git a/kBuild/units/qt6.kmk b/kBuild/units/qt6.kmk
index fc3d91c..28d6100 100644
--- a/kBuild/units/qt6.kmk
+++ b/kBuild/units/qt6.kmk
@@ -1,4 +1,4 @@
-# $Id: qt6.kmk 3559 2022-03-02 01:47:27Z bird $
+# $Id: qt6.kmk 3593 2023-05-19 10:39:04Z bird $
## @file
# Qt 6 unit.
#
@@ -1130,9 +1130,6 @@ ifeq ($(bld_trg),darwin)
else
ifeq ($(bld_trg),win)
$(eval $(target)_LIBS += $(foreach module,$(qt_modules), $(PATH_SDK_QT6_LIB)/$(qt_prefix)Qt6$(module)$(qt_infix)$(SUFF_LIB)) )
- ifeq ($(tool_do),LINK_PROGRAM)
- $(eval $(target)_LIBS += $(PATH_SDK_QT6_LIB)/$(qt_prefix)qtmain$(qt_infix)$(SUFF_LIB) )
- endif
else
$(eval $(target)_LIBS += $(foreach module,$(qt_modules), $(PATH_SDK_QT6_LIB)/lib$(qt_prefix)Qt6$(module)$(qt_infix)$(SUFF_DLL)) )
endif
diff --git a/kBuild/win-common.kmk b/kBuild/win-common.kmk
index bdba760..f8b0e1a 100644
--- a/kBuild/win-common.kmk
+++ b/kBuild/win-common.kmk
@@ -1,4 +1,4 @@
-# $Id: win-common.kmk 3323 2020-04-16 23:10:45Z bird $
+# $Id: win-common.kmk 3597 2023-06-16 20:56:17Z bird $
## @file
# kBuild Common Windows Definitions - Used by tools and SDKs.
#
@@ -59,3 +59,7 @@ WINCMN_MAP_ARCH.arm64 := arm64
WINCMN_MAP_ARCH.ia64 := ia64
WINCMN_MAP_ARCH.x86 := x86
## @}
+
+## @def WINCMN_MT_RETRY
+## Invocation of script for retrying MT.EXE when it clashes with AV software.
+WINCMN_MT_RETRY = $(ASH) $(KBUILD_PATH)/retry-10-delay-500ms.sh