[Pkg-virtualbox-commits] [kbuild] 01/03: New upstream version 0.1.9998svn3126+dfsg
Gianfranco Costamagna
locutusofborg at moszumanska.debian.org
Wed Nov 22 08:56:25 UTC 2017
This is an automated email from the git hooks/post-receive script.
locutusofborg pushed a commit to branch master
in repository kbuild.
commit 35d82fe28c77dc532502e85f5cfd4fff829f497d
Author: Gianfranco Costamagna <locutusofborg at debian.org>
Date: Wed Nov 22 09:54:00 2017 +0100
New upstream version 0.1.9998svn3126+dfsg
---
Config.kmk | 5 +-
kBuild/env.sh | 8 +-
kBuild/envwin.cmd | 4 +-
kBuild/footer-inherit-uses-tools.kmk | 4 +-
kBuild/footer-misc.kmk | 4 +-
kBuild/footer-pass1.kmk | 4 +-
kBuild/footer-pass2-compiling-targets.kmk | 4 +-
kBuild/footer-pass2-fetches.kmk | 4 +-
kBuild/footer-pass2-installs.kmk | 44 +++-
kBuild/footer-pass2-patches.kmk | 4 +-
kBuild/footer-passes.kmk | 4 +-
kBuild/footer.kmk | 4 +-
kBuild/header.kmk | 10 +-
kBuild/msgstyles/brief.kmk | 4 +-
kBuild/msgstyles/brief2.kmk | 4 +-
kBuild/rules.kmk | 4 +-
kBuild/sdks/DXSDK.kmk | 4 +-
kBuild/sdks/DXSDKAMD64.kmk | 4 +-
kBuild/sdks/DXSDKX86.kmk | 4 +-
kBuild/sdks/LIBSDL.kmk | 4 +-
kBuild/sdks/MACOSX104.kmk | 4 +-
kBuild/sdks/MACOSX104INCS.kmk | 4 +-
kBuild/sdks/MACOSX105.kmk | 4 +-
kBuild/sdks/MACOSX105INCS.kmk | 4 +-
kBuild/sdks/NT4DDK.kmk | 4 +-
kBuild/sdks/OS2DDKBASE32.kmk | 4 +-
kBuild/sdks/ReorderCompilerIncs.kmk | 4 +-
kBuild/sdks/W2K3DDK.kmk | 4 +-
kBuild/sdks/W2K3DDKAMD64.kmk | 4 +-
kBuild/sdks/W2K3DDKX86.kmk | 4 +-
kBuild/sdks/W32API.kmk | 4 +-
kBuild/sdks/WIN32SDK.kmk | 4 +-
kBuild/sdks/WIN32SDK2002.kmk | 4 +-
kBuild/sdks/WIN64SDK.kmk | 4 +-
kBuild/sdks/WINDDK.kmk | 4 +-
kBuild/sdks/WINDDK71.kmk | 4 +-
kBuild/sdks/WINDDK71WLH.kmk | 4 +-
kBuild/sdks/WINDDK71WNET.kmk | 4 +-
kBuild/sdks/WINDDK71WXP.kmk | 4 +-
kBuild/sdks/WINDDK80.kmk | 4 +-
kBuild/sdks/WINDDK80W8.kmk | 4 +-
kBuild/sdks/WINDDKW2K.kmk | 4 +-
kBuild/sdks/WINDDKWLH.kmk | 4 +-
kBuild/sdks/WINDDKWNET.kmk | 4 +-
kBuild/sdks/WINDDKWXP.kmk | 4 +-
kBuild/sdks/WINPSDK.kmk | 4 +-
kBuild/sdks/WINPSDK71.kmk | 4 +-
kBuild/sdks/WINPSDK71INCS.kmk | 4 +-
kBuild/sdks/WINPSDKINCS.kmk | 4 +-
kBuild/subfooter.kmk | 4 +-
kBuild/subheader.kmk | 4 +-
kBuild/templates/DUMMY.kmk | 4 +-
kBuild/tools/ALP.kmk | 4 +-
kBuild/tools/BISON.kmk | 4 +-
kBuild/tools/FLEX.kmk | 4 +-
kBuild/tools/GCC.kmk | 4 +-
kBuild/tools/GCC3.kmk | 4 +-
kBuild/tools/GCC32.kmk | 4 +-
kBuild/tools/GCC3OMF.kmk | 4 +-
kBuild/tools/GCC3PLAIN.kmk | 4 +-
kBuild/tools/GCC42MACHO.kmk | 4 +-
kBuild/tools/GCC4MACHO.kmk | 4 +-
kBuild/tools/GCC64.kmk | 4 +-
kBuild/tools/GXX.kmk | 4 +-
kBuild/tools/GXX3.kmk | 4 +-
kBuild/tools/GXX32.kmk | 4 +-
kBuild/tools/GXX3OMF.kmk | 4 +-
kBuild/tools/GXX3PLAIN.kmk | 4 +-
kBuild/tools/GXX42MACHO.kmk | 4 +-
kBuild/tools/GXX4MACHO.kmk | 4 +-
kBuild/tools/GXX64.kmk | 4 +-
kBuild/tools/JWASM.kmk | 4 +-
kBuild/tools/LLVMGCC42MACHO.kmk | 4 +-
kBuild/tools/LLVMGXX42MACHO.kmk | 4 +-
kBuild/tools/MASM510.kmk | 4 +-
kBuild/tools/MASM600.kmk | 4 +-
kBuild/tools/MASM610.kmk | 4 +-
kBuild/tools/MASM6PLUS.kmk | 4 +-
kBuild/tools/MASM710.kmk | 4 +-
kBuild/tools/MINGW32.kmk | 4 +-
kBuild/tools/MINGWW64.kmk | 4 +-
kBuild/tools/MSLINK510.kmk | 4 +-
kBuild/tools/NASM.kmk | 4 +-
kBuild/tools/OPENWATCOM-16.kmk | 4 +-
kBuild/tools/OPENWATCOM-WL.kmk | 4 +-
kBuild/tools/OPENWATCOM.kmk | 4 +-
kBuild/tools/StandardDTrace.kmk | 4 +-
kBuild/tools/TAR.kmk | 4 +-
kBuild/tools/TARBZ2.kmk | 4 +-
kBuild/tools/TARGZ.kmk | 4 +-
kBuild/tools/VAC308.kmk | 4 +-
kBuild/tools/VCC100.kmk | 4 +-
kBuild/tools/VCC100AMD64.kmk | 4 +-
kBuild/tools/VCC100X86.kmk | 4 +-
kBuild/tools/VCC120.kmk | 4 +-
kBuild/tools/VCC120AMD64.kmk | 4 +-
kBuild/tools/VCC120X86.kmk | 4 +-
kBuild/tools/VCC70.kmk | 4 +-
kBuild/tools/VCC80.kmk | 4 +-
kBuild/tools/VCC80AMD64.kmk | 4 +-
kBuild/tools/VCC80X86.kmk | 4 +-
kBuild/tools/WATCOMC11C-16.kmk | 4 +-
kBuild/tools/WATCOMC11C-WL.kmk | 4 +-
kBuild/tools/WATCOMC11C.kmk | 4 +-
kBuild/tools/WGET.kmk | 4 +-
kBuild/tools/XGCCAMD64LINUX.kmk | 4 +-
kBuild/tools/YACC.kmk | 4 +-
kBuild/tools/YASM.kmk | 4 +-
kBuild/tools/ZIP.kmk | 4 +-
kBuild/units/dtrace.kmk | 4 +-
kBuild/units/lex.kmk | 4 +-
kBuild/units/qt3.kmk | 4 +-
kBuild/units/qt4.kmk | 4 +-
kBuild/units/qt5.kmk | 4 +-
kBuild/units/vccprecomp.kmk | 4 +-
kBuild/units/yacc.kmk | 4 +-
kBuild/up.kmk | 4 +-
src/kmk/Makefile.am | 1 +
src/kmk/kmkbuiltin/cat.c | 8 -
src/kmk/kmkbuiltin/install.c | 338 ++++++++++++++++--------------
src/kmk/kmkbuiltin/mscfakes.c | 28 ++-
src/kmk/main.c | 12 +-
src/lib/Makefile.kmk | 3 +-
src/lib/dos2unix.c | 302 ++++++++++++++++++++++++++
src/lib/dos2unix.h | 50 +++++
src/lib/kDep.c | 4 +-
src/lib/kStuff/include/k/kDefs.h | 22 +-
src/lib/nt/ntunlink.c | 4 +-
src/lib/testcase/dos-text.txt | 35 ++++
src/lib/testcase/dos2unix-test.cmd | 46 ++++
src/lib/testcase/mixed-text.txt | 35 ++++
src/lib/testcase/unix-text.txt | 35 ++++
132 files changed, 1017 insertions(+), 425 deletions(-)
diff --git a/Config.kmk b/Config.kmk
index 3c226ff..7b22d71 100644
--- a/Config.kmk
+++ b/Config.kmk
@@ -1,4 +1,4 @@
-# $Id: Config.kmk 3110 2017-10-20 19:14:56Z bird $
+# $Id: Config.kmk 3111 2017-10-22 11:38:15Z bird $
## @file
# Build Configuration.
#
@@ -346,14 +346,17 @@ else # !os2, !win, !nt
# Make sure we get the right bit count in the output.
TEMPLATE_BIN_CFLAGS.x86 += -m32
+ TEMPLATE_BIN_CFLAGS.x32 += -mx32
TEMPLATE_BIN_CFLAGS.sparc32 += -m32
TEMPLATE_BIN_CFLAGS.amd64 += -m64
TEMPLATE_BIN_CFLAGS.sparc64 += -m64
TEMPLATE_BIN_CXXFLAGS.x86 += -m32
+ TEMPLATE_BIN_CXXFLAGS.x32 += -mx32
TEMPLATE_BIN_CXXFLAGS.sparc32 += -m32
TEMPLATE_BIN_CXXFLAGS.amd64 += -m64
TEMPLATE_BIN_CXXFLAGS.sparc64 += -m64
TEMPLATE_BIN_LDFLAGS.x86 += -m32
+ TEMPLATE_BIN_LDFLAGS.x32 += -mx32
TEMPLATE_BIN_LDFLAGS.sparc32 += -m32
TEMPLATE_BIN_LDFLAGS.amd64 += -m64
TEMPLATE_BIN_LDFLAGS.sparc64 += -m64
diff --git a/kBuild/env.sh b/kBuild/env.sh
index 79d8f33..d4a7583 100755
--- a/kBuild/env.sh
+++ b/kBuild/env.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# $Id: env.sh 3104 2017-10-20 16:23:06Z bird $
+# $Id: env.sh 3111 2017-10-22 11:38:15Z bird $
## @file
# Environment setup script.
#
@@ -337,6 +337,12 @@ if test -z "$KBUILD_HOST_ARCH"; then
case "$KBUILD_HOST_ARCH" in
x86_64|AMD64|amd64|k8|k8l|k9|k10)
KBUILD_HOST_ARCH='amd64'
+ # Try detect debian x32.
+ if test "$KBUILD_HOST" = "linux"; then
+ case "`uname -v`" in
+ *Debian*+x32+*) KBUILD_HOST_ARCH=x32 ;;
+ esac
+ fi
;;
x86|i86pc|ia32|i[3456789]86|BePC|i[3456789]86-AT[3456789]86)
KBUILD_HOST_ARCH='x86'
diff --git a/kBuild/envwin.cmd b/kBuild/envwin.cmd
index 26c769c..b66b6b6 100644
--- a/kBuild/envwin.cmd
+++ b/kBuild/envwin.cmd
@@ -1,5 +1,5 @@
@echo off
-REM $Id: envwin.cmd 2413 2010-09-11 17:43:04Z bird $
+REM $Id: envwin.cmd 3113 2017-10-29 17:16:03Z bird $
REM REM @file
REM Environment setup script.
REM
@@ -47,7 +47,7 @@ set _KBUILD_OVERRIDE_TARGET_ARCH=0
REM
REM Parse the arguments.
REM
-REM Note: The 0 argument must be safed as it is also shifted.
+REM Note: The 0 argument must be saved as it is also shifted.
REM
set _KBUILD_SELF=%0
set _KBUILD_OPT_FULL=0
diff --git a/kBuild/footer-inherit-uses-tools.kmk b/kBuild/footer-inherit-uses-tools.kmk
index 9bc5ad5..85d2512 100644
--- a/kBuild/footer-inherit-uses-tools.kmk
+++ b/kBuild/footer-inherit-uses-tools.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-inherit-uses-tools.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer-inherit-uses-tools.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - Footer - Target lists - Pass 2 - Template & Target Inheritance, Uses and Tools.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/footer-misc.kmk b/kBuild/footer-misc.kmk
index 7e4cda3..1bf8db6 100644
--- a/kBuild/footer-misc.kmk
+++ b/kBuild/footer-misc.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-misc.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer-misc.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - Footer - Target lists - Pass 2 - Misc.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/footer-pass1.kmk b/kBuild/footer-pass1.kmk
index 141e618..36d382a 100644
--- a/kBuild/footer-pass1.kmk
+++ b/kBuild/footer-pass1.kmk
@@ -1,4 +1,4 @@
-# $Id: footer-pass1.kmk 2764 2015-01-28 18:51:46Z bird $
+# $Id: footer-pass1.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - Footer - Target lists - Pass 1.
#
@@ -7,7 +7,7 @@
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/footer-pass2-compiling-targets.kmk b/kBuild/footer-pass2-compiling-targets.kmk
index 5e3c6a8..c0adc8a 100644
--- a/kBuild/footer-pass2-compiling-targets.kmk
+++ b/kBuild/footer-pass2-compiling-targets.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-pass2-compiling-targets.kmk 2952 2016-09-21 18:52:08Z bird $
+# $Id: footer-pass2-compiling-targets.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - Footer - Target lists - Pass 2 - Compiling Targets.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/footer-pass2-fetches.kmk b/kBuild/footer-pass2-fetches.kmk
index 48f333e..ffa75b7 100644
--- a/kBuild/footer-pass2-fetches.kmk
+++ b/kBuild/footer-pass2-fetches.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-pass2-fetches.kmk 2912 2016-09-14 13:36:15Z bird $
+# $Id: footer-pass2-fetches.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - Footer - Target lists - Pass 2 - Fetches.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/footer-pass2-installs.kmk b/kBuild/footer-pass2-installs.kmk
index f6a31b4..cbbcdbb 100644
--- a/kBuild/footer-pass2-installs.kmk
+++ b/kBuild/footer-pass2-installs.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-pass2-installs.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer-pass2-installs.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - Footer - Target lists - Pass 2 - Installs.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
@@ -42,7 +42,7 @@
define def_install_src_rule_staging
$$(call KB_FN_ASSERT_ABSPATH, stagedst)
$$(call KB_FN_ASSERT_ABSPATH, srcsrc)
-$(stagedst) : $(srcsrc) | $(dir $(stagedst))
+$(stagedst) : $(srcsrc) $(top_deps) | $(dir $(stagedst)) $(top_orderdeps)
%$$(call MSG_INST_FILE,$(srcsrc),$(stagedst))
$(top_pre_file_cmds)
$$(QUIET)$(stagecmd)
@@ -53,7 +53,7 @@ $(eval-opt-var def_install_src_rule_staging)
define def_install_src_rule_installing
$$(call KB_FN_ASSERT_ABSPATH, instdst)
$$(call KB_FN_ASSERT_ABSPATH, srcsrc)
-$(instdst) : $(srcsrc) | $(dir $(instdst))
+$(instdst) : $(srcsrc) $(top_deps) | $(dir $(instdst)) $(top_orderdeps)
%$$(call MSG_INST_FILE,$(srcsrc),$(instdst))
$(top_pre_file_cmds)
$$(QUIET)$(instcmd)
@@ -245,7 +245,7 @@ $(eval-opt-var def_install_src)
#
define def_install_symlink_rule_staging
$$(call KB_FN_ASSERT_ABSPATH, stagedst)
-$(stagedst) : | $(dir $(stagedst))
+$(stagedst) : $(top_deps) | $(dir $(stagedst)) $(top_orderdeps)
%$$(call MSG_INST_SYM,$(stagedst),$(symdst))
$$(QUIET)$$(RM) -f -- $$@
$(top_pre_sym_cmds)
@@ -256,7 +256,7 @@ $(eval-opt-var def_install_symlink_rule_staging)
define def_install_symlink_rule_installing
$$(call KB_FN_ASSERT_ABSPATH, instdst)
-$(instdst) : | $(dir $(instdst))
+$(instdst) : $(top_deps) | $(dir $(instdst)) $(top_orderdeps)
%$$(call MSG_INST_SYM,$(instdst),$(symdst))
$$(QUIET)$$(RM) -f -- $$@
$(top_pre_sym_cmds)
@@ -336,7 +336,7 @@ $(optmize def_install_symlink)
#
define def_install_directory_rule
$$(call KB_FN_ASSERT_ABSPATH, insdst)
-$(insdst):
+$(insdst): $(top_deps) | $(top_orderdeps)
%$$(call MSG_INST_DIR,$(insdst))
$(top_pre_dir_cmds)
$$(QUIET)$$(INSTALL) -d \
@@ -491,6 +491,36 @@ ifneq ($(insttype),none)
else
local top_instfun := _INSTALL_FILE
endif
+ local top_deps := \
+ $($(target)_DEPS.$(bld_trg_cpu)) \
+ $($(target)_DEPS.$(bld_trg).$(bld_trg_arch).$(bld_type)) \
+ $($(target)_DEPS.$(bld_trg).$(bld_trg_arch)) \
+ $($(target)_DEPS.$(bld_trg).$(bld_type)) \
+ $($(target)_DEPS.$(bld_trg_arch)) \
+ $($(target)_DEPS.$(bld_trg)) \
+ $($(target)_DEPS.$(bld_type)) \
+ $($(target)_DEPS)
+ local top_orderdeps := \
+ $($(target)_ORDERDEPS.$(bld_trg_cpu)) \
+ $($(target)_ORDERDEPS.$(bld_trg).$(bld_trg_arch).$(bld_type)) \
+ $($(target)_ORDERDEPS.$(bld_trg).$(bld_trg_arch)) \
+ $($(target)_ORDERDEPS.$(bld_trg).$(bld_type)) \
+ $($(target)_ORDERDEPS.$(bld_trg_arch)) \
+ $($(target)_ORDERDEPS.$(bld_trg)) \
+ $($(target)_ORDERDEPS.$(bld_type)) \
+ $($(target)_ORDERDEPS)
+ ifdef $(target)_DEFPATH
+ local top_defpath := $($(target)_DEFPATH)
+ else ifdef $(target)_PATH
+ local top_defpath := $($(target)_PATH)
+ else
+ local top_defpath :=
+ endif
+ ifneq ($(top_defpath),)
+ local top_deps := $(abspathex $(top_deps),$(top_defpath))
+ local top_orderdeps := $(abspathex $(top_orderdeps),$(top_defpath))
+ endif
+
# The user have to use double expansion and can only use the above locals. Not 100% optimal...
local top_pre_file_cmds := $(evalcall def_fn_prop_get_first_defined,PRE_XFILE_CMDS)
local top_post_file_cmds := $(evalcall def_fn_prop_get_first_defined,POST_XFILE_CMDS)
diff --git a/kBuild/footer-pass2-patches.kmk b/kBuild/footer-pass2-patches.kmk
index af98751..af07b6c 100644
--- a/kBuild/footer-pass2-patches.kmk
+++ b/kBuild/footer-pass2-patches.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-pass2-patches.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer-pass2-patches.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - Footer - Target lists - Pass 2 - Patches.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/footer-passes.kmk b/kBuild/footer-passes.kmk
index fe2dbf1..40fd397 100644
--- a/kBuild/footer-passes.kmk
+++ b/kBuild/footer-passes.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-passes.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer-passes.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - Footer - Target lists - Pass 2 - Passes.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/footer.kmk b/kBuild/footer.kmk
index ca732ad..baba97b 100644
--- a/kBuild/footer.kmk
+++ b/kBuild/footer.kmk
@@ -1,10 +1,10 @@
-# $Id: footer.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - File included at bottom of a makefile.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/header.kmk b/kBuild/header.kmk
index 8681f05..90ce24c 100644
--- a/kBuild/header.kmk
+++ b/kBuild/header.kmk
@@ -1,10 +1,10 @@
-# $Id: header.kmk 3103 2017-10-20 13:13:54Z bird $
+# $Id: header.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - File included at top of a makefile.
#
#
-# Copyright (c) 2004-2015 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
@@ -79,7 +79,7 @@ endif
# The revision in which this file was last modified.
# This can be useful when using development versions of kBuild.
#
-KMK_REVISION := $(patsubst %:,, $Rev: 3103 $ )
+KMK_REVISION := $(patsubst %:,, $Rev: 3121 $ )
#
@@ -197,8 +197,8 @@ KBUILD_BLD_TYPES := release profile debug
# build types. (PORTME)
#
KBUILD_OSES := darwin dos dragonfly freebsd gnuhurd gnukfbsd gnuknbsd haiku l4 linux netbsd nt openbsd os2 solaris win os-agnostic
-KBUILD_ARCHES := x86 amd64 noarch alpha arm32 arm64 hppa32 hppa64 ia64 m68k mips32 mips64 ppc32 ppc64 s390 s390x sh32 sh64 sparc32 sparc64
-KBUILD_ARCHES_64 := amd64 alpha arm64 hppa64 ia64 mips64 ppc64 s390x sh64 sparc64
+KBUILD_ARCHES := x86 amd64 noarch alpha arm32 arm64 hppa32 hppa64 ia64 m68k mips32 mips64 ppc32 ppc64 s390 s390x sh32 sh64 sparc32 sparc64 x32
+KBUILD_ARCHES_64 := amd64 alpha arm64 hppa64 ia64 mips64 ppc64 s390x sh64 sparc64 x32
KBUILD_ARCHES_32 := x86 arm32 hppa32 m68k mips32 ppc32 s390 sh32 sparc32
diff --git a/kBuild/msgstyles/brief.kmk b/kBuild/msgstyles/brief.kmk
index 0a17df6..51cb11c 100644
--- a/kBuild/msgstyles/brief.kmk
+++ b/kBuild/msgstyles/brief.kmk
@@ -1,10 +1,10 @@
-# $Id: brief.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: brief.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Message Style - 'brief'
#
#
-# Copyright (c) 2007-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2007-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/msgstyles/brief2.kmk b/kBuild/msgstyles/brief2.kmk
index 9651256..4d61ad8 100644
--- a/kBuild/msgstyles/brief2.kmk
+++ b/kBuild/msgstyles/brief2.kmk
@@ -1,10 +1,10 @@
-# $Id: brief2.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: brief2.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Message Style - 'brief'
#
#
-# Copyright (c) 2007-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2007-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/rules.kmk b/kBuild/rules.kmk
index e07f733..686d82b 100644
--- a/kBuild/rules.kmk
+++ b/kBuild/rules.kmk
@@ -1,10 +1,10 @@
-# $Id: rules.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: rules.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - File included at top of makefile.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/DXSDK.kmk b/kBuild/sdks/DXSDK.kmk
index a1f044c..de0c51e 100644
--- a/kBuild/sdks/DXSDK.kmk
+++ b/kBuild/sdks/DXSDK.kmk
@@ -1,10 +1,10 @@
-# $Id: DXSDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: DXSDK.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Microsoft Direct X SDK, targeting $(KBUILD_TARGET).
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/DXSDKAMD64.kmk b/kBuild/sdks/DXSDKAMD64.kmk
index 6e08650..cd4614a 100644
--- a/kBuild/sdks/DXSDKAMD64.kmk
+++ b/kBuild/sdks/DXSDKAMD64.kmk
@@ -1,10 +1,10 @@
-# $Id: DXSDKAMD64.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: DXSDKAMD64.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Microsoft Direct X SDK, targeting AMD64.
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/DXSDKX86.kmk b/kBuild/sdks/DXSDKX86.kmk
index 6dbb648..6995e01 100644
--- a/kBuild/sdks/DXSDKX86.kmk
+++ b/kBuild/sdks/DXSDKX86.kmk
@@ -1,10 +1,10 @@
-# $Id: DXSDKX86.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: DXSDKX86.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Microsoft Direct X SDK, targeting X86.
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/LIBSDL.kmk b/kBuild/sdks/LIBSDL.kmk
index dbec4c2..3e73cb3 100644
--- a/kBuild/sdks/LIBSDL.kmk
+++ b/kBuild/sdks/LIBSDL.kmk
@@ -1,10 +1,10 @@
-# $Id: LIBSDL.kmk 2566 2012-03-02 12:58:25Z bird $
+# $Id: LIBSDL.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - Simple DirectMedia Layer, targeting $(KBUILD_TARGET).
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/MACOSX104.kmk b/kBuild/sdks/MACOSX104.kmk
index bb9e029..47da592 100644
--- a/kBuild/sdks/MACOSX104.kmk
+++ b/kBuild/sdks/MACOSX104.kmk
@@ -1,10 +1,10 @@
-# $Id: MACOSX104.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: MACOSX104.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - Mac OS X v10.4 SDK.
#
#
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/MACOSX104INCS.kmk b/kBuild/sdks/MACOSX104INCS.kmk
index 32de67a..e8f656b 100644
--- a/kBuild/sdks/MACOSX104INCS.kmk
+++ b/kBuild/sdks/MACOSX104INCS.kmk
@@ -1,10 +1,10 @@
-# $Id: MACOSX104INCS.kmk 2413 2010-09-11 17:43:04Z bird $
+# $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-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/MACOSX105.kmk b/kBuild/sdks/MACOSX105.kmk
index 5d30d80..89d6f33 100644
--- a/kBuild/sdks/MACOSX105.kmk
+++ b/kBuild/sdks/MACOSX105.kmk
@@ -1,10 +1,10 @@
-# $Id: MACOSX105.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: MACOSX105.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - Mac OS X v10.5 SDK.
#
#
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/MACOSX105INCS.kmk b/kBuild/sdks/MACOSX105INCS.kmk
index ab8a2e5..7965c9d 100644
--- a/kBuild/sdks/MACOSX105INCS.kmk
+++ b/kBuild/sdks/MACOSX105INCS.kmk
@@ -1,10 +1,10 @@
-# $Id: MACOSX105INCS.kmk 2413 2010-09-11 17:43:04Z bird $
+# $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-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/NT4DDK.kmk b/kBuild/sdks/NT4DDK.kmk
index 0f76d03..29e60f0 100644
--- a/kBuild/sdks/NT4DDK.kmk
+++ b/kBuild/sdks/NT4DDK.kmk
@@ -1,10 +1,10 @@
-# $Id: NT4DDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: NT4DDK.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Windows NT 4 DDK, targeting X86.
#
#
-# Copyright (c) 2005-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2005-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/OS2DDKBASE32.kmk b/kBuild/sdks/OS2DDKBASE32.kmk
index 0e039c1..7e8f38d 100644
--- a/kBuild/sdks/OS2DDKBASE32.kmk
+++ b/kBuild/sdks/OS2DDKBASE32.kmk
@@ -1,10 +1,10 @@
-# $Id: OS2DDKBASE32.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: OS2DDKBASE32.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
#
# kBuild SDK - The OS/2 DDK, 32-bit base headers and libraries.
#
-# Copyright (c) 2007-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2007-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/ReorderCompilerIncs.kmk b/kBuild/sdks/ReorderCompilerIncs.kmk
index bf7aca5..64fa115 100644
--- a/kBuild/sdks/ReorderCompilerIncs.kmk
+++ b/kBuild/sdks/ReorderCompilerIncs.kmk
@@ -1,4 +1,4 @@
-# $Id: ReorderCompilerIncs.kmk 2603 2012-07-12 20:26:28Z bird $
+# $Id: ReorderCompilerIncs.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - Pseudo SDK that inserts the compiler includes a bit earlier.
#
@@ -8,7 +8,7 @@
#
#
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/W2K3DDK.kmk b/kBuild/sdks/W2K3DDK.kmk
index e2025d0..739bfaf 100644
--- a/kBuild/sdks/W2K3DDK.kmk
+++ b/kBuild/sdks/W2K3DDK.kmk
@@ -1,10 +1,10 @@
-# $Id: W2K3DDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: W2K3DDK.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Microsoft Windows 2003 DDK, targeting $(KBUILD_TARGET).
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/W2K3DDKAMD64.kmk b/kBuild/sdks/W2K3DDKAMD64.kmk
index a4769a7..cdafbf9 100644
--- a/kBuild/sdks/W2K3DDKAMD64.kmk
+++ b/kBuild/sdks/W2K3DDKAMD64.kmk
@@ -1,10 +1,10 @@
-# $Id: W2K3DDKAMD64.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: W2K3DDKAMD64.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Microsoft Windows 2003 DDK, targeting amd64.
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/W2K3DDKX86.kmk b/kBuild/sdks/W2K3DDKX86.kmk
index 1e4c23a..594cb97 100644
--- a/kBuild/sdks/W2K3DDKX86.kmk
+++ b/kBuild/sdks/W2K3DDKX86.kmk
@@ -1,10 +1,10 @@
-# $Id: W2K3DDKX86.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: W2K3DDKX86.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Microsoft Windows 2003 DDK, targeting x86.
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/W32API.kmk b/kBuild/sdks/W32API.kmk
index f341719..a05df9e 100644
--- a/kBuild/sdks/W32API.kmk
+++ b/kBuild/sdks/W32API.kmk
@@ -1,10 +1,10 @@
-# $Id: W32API.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: W32API.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - w32api (MinGW), targeting x86.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WIN32SDK.kmk b/kBuild/sdks/WIN32SDK.kmk
index 37d165e..2eab407 100644
--- a/kBuild/sdks/WIN32SDK.kmk
+++ b/kBuild/sdks/WIN32SDK.kmk
@@ -1,10 +1,10 @@
-# $Id: WIN32SDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WIN32SDK.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Windows Platform SDK, targeting x86.
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WIN32SDK2002.kmk b/kBuild/sdks/WIN32SDK2002.kmk
index 5120d26..1984e96 100644
--- a/kBuild/sdks/WIN32SDK2002.kmk
+++ b/kBuild/sdks/WIN32SDK2002.kmk
@@ -1,11 +1,11 @@
-# $Id: WIN32SDK2002.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WIN32SDK2002.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - Windows Platform SDK (from ~2002), targeting x86.
# Differs in that it has ddraw.lib and dxguid.lib.
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WIN64SDK.kmk b/kBuild/sdks/WIN64SDK.kmk
index ba464a5..da068c3 100644
--- a/kBuild/sdks/WIN64SDK.kmk
+++ b/kBuild/sdks/WIN64SDK.kmk
@@ -1,10 +1,10 @@
-# $Id: WIN64SDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WIN64SDK.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Windows Platform SDK, targeting AMD64.
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINDDK.kmk b/kBuild/sdks/WINDDK.kmk
index 2736a04..2c662a7 100644
--- a/kBuild/sdks/WINDDK.kmk
+++ b/kBuild/sdks/WINDDK.kmk
@@ -1,11 +1,11 @@
-# $Id: WINDDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WINDDK.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Microsoft Windows Vista and Server 2008 DDKs.
# Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINDDK71.kmk b/kBuild/sdks/WINDDK71.kmk
index 92f0f6c..4c54fb0 100644
--- a/kBuild/sdks/WINDDK71.kmk
+++ b/kBuild/sdks/WINDDK71.kmk
@@ -1,11 +1,11 @@
-# $Id: WINDDK71.kmk 2602 2012-07-12 20:21:45Z bird $
+# $Id: WINDDK71.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Microsoft Windows 7 DDK, v7.1.
# Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
#
#
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINDDK71WLH.kmk b/kBuild/sdks/WINDDK71WLH.kmk
index 3b7e452..7b29885 100644
--- a/kBuild/sdks/WINDDK71WLH.kmk
+++ b/kBuild/sdks/WINDDK71WLH.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDK71WLH.kmk 2602 2012-07-12 20:21:45Z bird $
+# $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-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINDDK71WNET.kmk b/kBuild/sdks/WINDDK71WNET.kmk
index df02cab..2dbde56 100644
--- a/kBuild/sdks/WINDDK71WNET.kmk
+++ b/kBuild/sdks/WINDDK71WNET.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDK71WNET.kmk 2602 2012-07-12 20:21:45Z bird $
+# $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-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINDDK71WXP.kmk b/kBuild/sdks/WINDDK71WXP.kmk
index 42a4f73..61814a2 100644
--- a/kBuild/sdks/WINDDK71WXP.kmk
+++ b/kBuild/sdks/WINDDK71WXP.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDK71WXP.kmk 2602 2012-07-12 20:21:45Z bird $
+# $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-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINDDK80.kmk b/kBuild/sdks/WINDDK80.kmk
index 69acd16..21dcaa5 100644
--- a/kBuild/sdks/WINDDK80.kmk
+++ b/kBuild/sdks/WINDDK80.kmk
@@ -1,11 +1,11 @@
-# $Id: WINDDK80.kmk 2607 2012-07-20 12:12:58Z bird $
+# $Id: WINDDK80.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Microsoft Windows 8 DDK.
# Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
#
#
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINDDK80W8.kmk b/kBuild/sdks/WINDDK80W8.kmk
index 24e48f8..08b571c 100644
--- a/kBuild/sdks/WINDDK80W8.kmk
+++ b/kBuild/sdks/WINDDK80W8.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDK80W8.kmk 2607 2012-07-20 12:12:58Z bird $
+# $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-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINDDKW2K.kmk b/kBuild/sdks/WINDDKW2K.kmk
index 6f5ef1f..318f9a6 100644
--- a/kBuild/sdks/WINDDKW2K.kmk
+++ b/kBuild/sdks/WINDDKW2K.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDKW2K.kmk 2413 2010-09-11 17:43:04Z bird $
+# $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-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINDDKWLH.kmk b/kBuild/sdks/WINDDKWLH.kmk
index fe7479e..63952a0 100644
--- a/kBuild/sdks/WINDDKWLH.kmk
+++ b/kBuild/sdks/WINDDKWLH.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDKWLH.kmk 2413 2010-09-11 17:43:04Z bird $
+# $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-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINDDKWNET.kmk b/kBuild/sdks/WINDDKWNET.kmk
index d0fdfb7..f4b092e 100644
--- a/kBuild/sdks/WINDDKWNET.kmk
+++ b/kBuild/sdks/WINDDKWNET.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDKWNET.kmk 2413 2010-09-11 17:43:04Z bird $
+# $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-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINDDKWXP.kmk b/kBuild/sdks/WINDDKWXP.kmk
index 69a3a1b..8df29d5 100644
--- a/kBuild/sdks/WINDDKWXP.kmk
+++ b/kBuild/sdks/WINDDKWXP.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDKWXP.kmk 2413 2010-09-11 17:43:04Z bird $
+# $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-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINPSDK.kmk b/kBuild/sdks/WINPSDK.kmk
index e4fa690..30e6a31 100644
--- a/kBuild/sdks/WINPSDK.kmk
+++ b/kBuild/sdks/WINPSDK.kmk
@@ -1,10 +1,10 @@
-# $Id: WINPSDK.kmk 2735 2014-12-09 15:35:45Z bird $
+# $Id: WINPSDK.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Windows Platform SDK, targeting (KBUILD_TARGET).
#
#
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINPSDK71.kmk b/kBuild/sdks/WINPSDK71.kmk
index adcabe5..504597d 100644
--- a/kBuild/sdks/WINPSDK71.kmk
+++ b/kBuild/sdks/WINPSDK71.kmk
@@ -1,10 +1,10 @@
-# $Id: WINPSDK71.kmk 2735 2014-12-09 15:35:45Z bird $
+# $Id: WINPSDK71.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Windows Platform SDK v7.1, targeting (KBUILD_TARGET).
#
#
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINPSDK71INCS.kmk b/kBuild/sdks/WINPSDK71INCS.kmk
index 4edf170..d237c54 100644
--- a/kBuild/sdks/WINPSDK71INCS.kmk
+++ b/kBuild/sdks/WINPSDK71INCS.kmk
@@ -1,4 +1,4 @@
-# $Id: WINPSDK71INCS.kmk 2602 2012-07-12 20:21:45Z bird $
+# $Id: WINPSDK71INCS.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Windows Platform SDK v7.1, targeting (KBUILD_TARGET) but
# without any libraries or LIBPATH properties.
@@ -6,7 +6,7 @@
#
#
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/sdks/WINPSDKINCS.kmk b/kBuild/sdks/WINPSDKINCS.kmk
index fee7a21..78a00bd 100644
--- a/kBuild/sdks/WINPSDKINCS.kmk
+++ b/kBuild/sdks/WINPSDKINCS.kmk
@@ -1,4 +1,4 @@
-# $Id: WINPSDKINCS.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WINPSDKINCS.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild SDK - The Windows Platform SDK, targeting (KBUILD_TARGET) but
# without any libraries or LIBPATH properties.
@@ -6,7 +6,7 @@
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/subfooter.kmk b/kBuild/subfooter.kmk
index baf1a03..5a0f91a 100644
--- a/kBuild/subfooter.kmk
+++ b/kBuild/subfooter.kmk
@@ -1,10 +1,10 @@
-# $Id: subfooter.kmk 2763 2015-01-28 18:25:31Z bird $
+# $Id: subfooter.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - File included at bottom of a makefile or sub-makefile.
#
#
-# Copyright (c) 2006-2015 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/subheader.kmk b/kBuild/subheader.kmk
index 91d1059..f8df35c 100644
--- a/kBuild/subheader.kmk
+++ b/kBuild/subheader.kmk
@@ -1,10 +1,10 @@
-# $Id: subheader.kmk 2763 2015-01-28 18:25:31Z bird $
+# $Id: subheader.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - File included at top of a makefile or sub-makefile.
#
#
-# Copyright (c) 2006-2015 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/templates/DUMMY.kmk b/kBuild/templates/DUMMY.kmk
index 48e2ca8..fe54ad9 100644
--- a/kBuild/templates/DUMMY.kmk
+++ b/kBuild/templates/DUMMY.kmk
@@ -1,10 +1,10 @@
-# $Id: DUMMY.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: DUMMY.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Template Config - Empty dummy template.
#
#
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/ALP.kmk b/kBuild/tools/ALP.kmk
index 42ef67d..18c13b6 100644
--- a/kBuild/tools/ALP.kmk
+++ b/kBuild/tools/ALP.kmk
@@ -1,10 +1,10 @@
-# $Id: ALP.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: ALP.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - ALP or later.
#
#
-# Copyright (c) 2005-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2005-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/BISON.kmk b/kBuild/tools/BISON.kmk
index b2aed47..435e4bf 100644
--- a/kBuild/tools/BISON.kmk
+++ b/kBuild/tools/BISON.kmk
@@ -1,10 +1,10 @@
-# $Id: BISON.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: BISON.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# GNU bison tool
#
#
-# Copyright (c) 2009-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2009-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/FLEX.kmk b/kBuild/tools/FLEX.kmk
index 7f004cb..8f1dc20 100644
--- a/kBuild/tools/FLEX.kmk
+++ b/kBuild/tools/FLEX.kmk
@@ -1,10 +1,10 @@
-# $Id: FLEX.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: FLEX.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# flex tool
#
#
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GCC.kmk b/kBuild/tools/GCC.kmk
index 482e421..823f5a4 100644
--- a/kBuild/tools/GCC.kmk
+++ b/kBuild/tools/GCC.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC.kmk 2545 2011-09-13 19:09:05Z bird $
+# $Id: GCC.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Generic GCC Using The System GCC.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GCC3.kmk b/kBuild/tools/GCC3.kmk
index fd6c6b8..e8d3148 100644
--- a/kBuild/tools/GCC3.kmk
+++ b/kBuild/tools/GCC3.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC3.kmk 2775 2015-02-03 20:00:15Z bird $
+# $Id: GCC3.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Generic GCC v3.2.x or later Using The System GCC and Binutils.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GCC32.kmk b/kBuild/tools/GCC32.kmk
index 88fb941..d307d70 100644
--- a/kBuild/tools/GCC32.kmk
+++ b/kBuild/tools/GCC32.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC32.kmk 3062 2017-09-30 11:26:21Z bird $
+# $Id: GCC32.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Generic 32-bit GCC v3.2.x or later Using The System GCC.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GCC3OMF.kmk b/kBuild/tools/GCC3OMF.kmk
index e7a97e8..748512a 100644
--- a/kBuild/tools/GCC3OMF.kmk
+++ b/kBuild/tools/GCC3OMF.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC3OMF.kmk 2776 2015-02-03 20:38:12Z bird $
+# $Id: GCC3OMF.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - GCC v3 targeting OS/2 OMF.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GCC3PLAIN.kmk b/kBuild/tools/GCC3PLAIN.kmk
index 0793f83..6846133 100644
--- a/kBuild/tools/GCC3PLAIN.kmk
+++ b/kBuild/tools/GCC3PLAIN.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC3PLAIN.kmk 2545 2011-09-13 19:09:05Z bird $
+# $Id: GCC3PLAIN.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Generic GCC v3.2.x or later Using The System GCC, any Unix Linker and Unix Archiver.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GCC42MACHO.kmk b/kBuild/tools/GCC42MACHO.kmk
index d0f0a31..c367a0d 100644
--- a/kBuild/tools/GCC42MACHO.kmk
+++ b/kBuild/tools/GCC42MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC42MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: GCC42MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - GCC v4.2.x targeting Darwin (Mac OS X) Mach-O.
#
#
-# Copyright (c) 2004-2011 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GCC4MACHO.kmk b/kBuild/tools/GCC4MACHO.kmk
index 307e2b1..9060d50 100644
--- a/kBuild/tools/GCC4MACHO.kmk
+++ b/kBuild/tools/GCC4MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC4MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: GCC4MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - GCC v4 targeting Darwin (Mac OS X) Mach-O.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GCC64.kmk b/kBuild/tools/GCC64.kmk
index 154f7d8..52a17fb 100644
--- a/kBuild/tools/GCC64.kmk
+++ b/kBuild/tools/GCC64.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC64.kmk 3062 2017-09-30 11:26:21Z bird $
+# $Id: GCC64.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Generic 64-bit GCC v3.2.x or later Using The System GCC.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GXX.kmk b/kBuild/tools/GXX.kmk
index c543238..43ae6f9 100644
--- a/kBuild/tools/GXX.kmk
+++ b/kBuild/tools/GXX.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX.kmk 2545 2011-09-13 19:09:05Z bird $
+# $Id: GXX.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Generic GCC using the system GCC, for building C++ code.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GXX3.kmk b/kBuild/tools/GXX3.kmk
index 64cbd1d..4676c30 100644
--- a/kBuild/tools/GXX3.kmk
+++ b/kBuild/tools/GXX3.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX3.kmk 2775 2015-02-03 20:00:15Z bird $
+# $Id: GXX3.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Generic GCC v3.2.x using the system GCC and Binutils, for building C++ code.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GXX32.kmk b/kBuild/tools/GXX32.kmk
index cda007f..c25bb81 100644
--- a/kBuild/tools/GXX32.kmk
+++ b/kBuild/tools/GXX32.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX32.kmk 3062 2017-09-30 11:26:21Z bird $
+# $Id: GXX32.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Generic 32-bit GCC v3.2.x or later using the system GCC, for building C++ code.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GXX3OMF.kmk b/kBuild/tools/GXX3OMF.kmk
index f54b775..f899e39 100644
--- a/kBuild/tools/GXX3OMF.kmk
+++ b/kBuild/tools/GXX3OMF.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX3OMF.kmk 2776 2015-02-03 20:38:12Z bird $
+# $Id: GXX3OMF.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - GCC v3 targeting OS/2 OMF, for building C++ code.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GXX3PLAIN.kmk b/kBuild/tools/GXX3PLAIN.kmk
index 92ab12b..6a69058 100644
--- a/kBuild/tools/GXX3PLAIN.kmk
+++ b/kBuild/tools/GXX3PLAIN.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX3PLAIN.kmk 2545 2011-09-13 19:09:05Z bird $
+# $Id: GXX3PLAIN.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Generic GCC v3.2.x or later using the system GCC, any Unix linker and Unix archiver to build C++ code.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GXX42MACHO.kmk b/kBuild/tools/GXX42MACHO.kmk
index df2077b..26149c4 100644
--- a/kBuild/tools/GXX42MACHO.kmk
+++ b/kBuild/tools/GXX42MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX42MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: GXX42MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - GCC v4.2.x targeting Darwin (Mac OS X) Mach-O, for building C++ code.
#
#
-# Copyright (c) 2004-2011 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GXX4MACHO.kmk b/kBuild/tools/GXX4MACHO.kmk
index a3df1d5..914df2f 100644
--- a/kBuild/tools/GXX4MACHO.kmk
+++ b/kBuild/tools/GXX4MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX4MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: GXX4MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - GCC v4 targeting Darwin (Mac OS X) Mach-O, for building C++ code.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/GXX64.kmk b/kBuild/tools/GXX64.kmk
index 0c319ea..56b112d 100644
--- a/kBuild/tools/GXX64.kmk
+++ b/kBuild/tools/GXX64.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX64.kmk 3062 2017-09-30 11:26:21Z bird $
+# $Id: GXX64.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Generic 64-bit GCC v3.2.x or later using the system GCC, for building C++ code.
#
#
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/JWASM.kmk b/kBuild/tools/JWASM.kmk
index fb8ab22..39393eb 100644
--- a/kBuild/tools/JWASM.kmk
+++ b/kBuild/tools/JWASM.kmk
@@ -1,10 +1,10 @@
-# $Id: JWASM.kmk 2774 2015-02-03 19:56:24Z bird $
+# $Id: JWASM.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - JWasm
#
#
-# Copyright (c) 2012-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2012-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/LLVMGCC42MACHO.kmk b/kBuild/tools/LLVMGCC42MACHO.kmk
index 4511ca5..d7c7841 100644
--- a/kBuild/tools/LLVMGCC42MACHO.kmk
+++ b/kBuild/tools/LLVMGCC42MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: LLVMGCC42MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: LLVMGCC42MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - LLVM GCC v4.2.x targeting Darwin (Mac OS X) Mach-O.
#
#
-# Copyright (c) 2004-2011 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/LLVMGXX42MACHO.kmk b/kBuild/tools/LLVMGXX42MACHO.kmk
index 9fab606..e700533 100644
--- a/kBuild/tools/LLVMGXX42MACHO.kmk
+++ b/kBuild/tools/LLVMGXX42MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: LLVMGXX42MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: LLVMGXX42MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - LLVM GCC v4.2.x targeting Darwin (Mac OS X) Mach-O, for building C++ code.
#
#
-# Copyright (c) 2004-2011 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/MASM510.kmk b/kBuild/tools/MASM510.kmk
index bd00786..3726b36 100644
--- a/kBuild/tools/MASM510.kmk
+++ b/kBuild/tools/MASM510.kmk
@@ -1,10 +1,10 @@
-# $Id: MASM510.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MASM510.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - MASM v5.10
#
#
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/MASM600.kmk b/kBuild/tools/MASM600.kmk
index e1a300c..502ffc9 100644
--- a/kBuild/tools/MASM600.kmk
+++ b/kBuild/tools/MASM600.kmk
@@ -1,10 +1,10 @@
-# $Id: MASM600.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MASM600.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - MASM v6.00
#
#
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/MASM610.kmk b/kBuild/tools/MASM610.kmk
index e920bda..2c780a2 100644
--- a/kBuild/tools/MASM610.kmk
+++ b/kBuild/tools/MASM610.kmk
@@ -1,10 +1,10 @@
-# $Id: MASM610.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MASM610.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - MASM v6.10
#
#
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/MASM6PLUS.kmk b/kBuild/tools/MASM6PLUS.kmk
index b6023f2..d0226d1 100644
--- a/kBuild/tools/MASM6PLUS.kmk
+++ b/kBuild/tools/MASM6PLUS.kmk
@@ -1,10 +1,10 @@
-# $Id: MASM6PLUS.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MASM6PLUS.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - MASM v6 and later.
#
#
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/MASM710.kmk b/kBuild/tools/MASM710.kmk
index 812a8ae..b44d1c8 100644
--- a/kBuild/tools/MASM710.kmk
+++ b/kBuild/tools/MASM710.kmk
@@ -1,10 +1,10 @@
-# $Id: MASM710.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MASM710.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - MASM v7.10
#
#
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/MINGW32.kmk b/kBuild/tools/MINGW32.kmk
index e9b32a3..0421a81 100644
--- a/kBuild/tools/MINGW32.kmk
+++ b/kBuild/tools/MINGW32.kmk
@@ -1,10 +1,10 @@
-# $Id: MINGW32.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MINGW32.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - MinGW32 GCC v3.3+.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/MINGWW64.kmk b/kBuild/tools/MINGWW64.kmk
index b14f673..5195f22 100644
--- a/kBuild/tools/MINGWW64.kmk
+++ b/kBuild/tools/MINGWW64.kmk
@@ -1,10 +1,10 @@
-# $Id: MINGWW64.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MINGWW64.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - MinGW-W64.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/MSLINK510.kmk b/kBuild/tools/MSLINK510.kmk
index eeed5a7..ccf6eb2 100644
--- a/kBuild/tools/MSLINK510.kmk
+++ b/kBuild/tools/MSLINK510.kmk
@@ -1,10 +1,10 @@
-# $Id: MSLINK510.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: MSLINK510.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Microsoft Link v5.10
#
#
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/NASM.kmk b/kBuild/tools/NASM.kmk
index b3ab243..fabf3e6 100644
--- a/kBuild/tools/NASM.kmk
+++ b/kBuild/tools/NASM.kmk
@@ -1,10 +1,10 @@
-# $Id: NASM.kmk 2929 2016-09-16 21:19:14Z bird $
+# $Id: NASM.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Netwide Assembler v0.98+.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/OPENWATCOM-16.kmk b/kBuild/tools/OPENWATCOM-16.kmk
index ee02835..a48ff91 100644
--- a/kBuild/tools/OPENWATCOM-16.kmk
+++ b/kBuild/tools/OPENWATCOM-16.kmk
@@ -1,11 +1,11 @@
-# $Id: OPENWATCOM-16.kmk 2897 2016-09-08 15:38:43Z bird $
+# $Id: OPENWATCOM-16.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Open Watcom v1.4 and later, 16-bit targets.
#
# @remarks wrc is untested, so are DLLs, and programs.
#
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/OPENWATCOM-WL.kmk b/kBuild/tools/OPENWATCOM-WL.kmk
index 22fa44f..bc6324b 100644
--- a/kBuild/tools/OPENWATCOM-WL.kmk
+++ b/kBuild/tools/OPENWATCOM-WL.kmk
@@ -1,11 +1,11 @@
-# $Id: OPENWATCOM-WL.kmk 2749 2015-01-23 01:01:02Z bird $
+# $Id: OPENWATCOM-WL.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Open Watcom v1.4 and later, using wlink.
#
# @remarks wrc is untested, so are DLLs, and programs.
#
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/OPENWATCOM.kmk b/kBuild/tools/OPENWATCOM.kmk
index b7bae08..a9ffded 100644
--- a/kBuild/tools/OPENWATCOM.kmk
+++ b/kBuild/tools/OPENWATCOM.kmk
@@ -1,10 +1,10 @@
-# $Id: OPENWATCOM.kmk 2897 2016-09-08 15:38:43Z bird $
+# $Id: OPENWATCOM.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Open Watcom v1.4 and later.
#
#
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/StandardDTrace.kmk b/kBuild/tools/StandardDTrace.kmk
index 8b32781..e4076e3 100644
--- a/kBuild/tools/StandardDTrace.kmk
+++ b/kBuild/tools/StandardDTrace.kmk
@@ -1,10 +1,10 @@
-# $Id: StandardDTrace.kmk 2567 2012-03-17 19:27:32Z bird $
+# $Id: StandardDTrace.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# Standard DTrace tool.
#
#
-# Copyright (c) 2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2012-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/TAR.kmk b/kBuild/tools/TAR.kmk
index cde01cf..f23a302 100644
--- a/kBuild/tools/TAR.kmk
+++ b/kBuild/tools/TAR.kmk
@@ -1,10 +1,10 @@
-# $Id: TAR.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: TAR.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - tar unpacker.
#
#
-# Copyright (c) 2006-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/TARBZ2.kmk b/kBuild/tools/TARBZ2.kmk
index 987321d..7542f01 100644
--- a/kBuild/tools/TARBZ2.kmk
+++ b/kBuild/tools/TARBZ2.kmk
@@ -1,10 +1,10 @@
-# $Id: TARBZ2.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: TARBZ2.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - tar.bz2 unpacker.
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/TARGZ.kmk b/kBuild/tools/TARGZ.kmk
index a52ac57..2277ca0 100644
--- a/kBuild/tools/TARGZ.kmk
+++ b/kBuild/tools/TARGZ.kmk
@@ -1,10 +1,10 @@
-# $Id: TARGZ.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: TARGZ.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - tar.gz unpacker.
#
#
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/VAC308.kmk b/kBuild/tools/VAC308.kmk
index 7b9e78f..d2ba849 100644
--- a/kBuild/tools/VAC308.kmk
+++ b/kBuild/tools/VAC308.kmk
@@ -1,10 +1,10 @@
-# $Id: VAC308.kmk 3055 2017-08-31 15:34:33Z bird $
+# $Id: VAC308.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - VisualAge for C++ v3.08.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/VCC100.kmk b/kBuild/tools/VCC100.kmk
index 34ed55a..3667324 100644
--- a/kBuild/tools/VCC100.kmk
+++ b/kBuild/tools/VCC100.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC100.kmk 2964 2016-09-23 11:08:04Z bird $
+# $Id: VCC100.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting $(KBUILD_TARGET).
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/VCC100AMD64.kmk b/kBuild/tools/VCC100AMD64.kmk
index 316882f..6107ccd 100644
--- a/kBuild/tools/VCC100AMD64.kmk
+++ b/kBuild/tools/VCC100AMD64.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC100AMD64.kmk 2964 2016-09-23 11:08:04Z bird $
+# $Id: VCC100AMD64.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting AMD64.
#
#
-# Copyright (c) 2004-2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/VCC100X86.kmk b/kBuild/tools/VCC100X86.kmk
index fb81816..06b0696 100644
--- a/kBuild/tools/VCC100X86.kmk
+++ b/kBuild/tools/VCC100X86.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC100X86.kmk 2964 2016-09-23 11:08:04Z bird $
+# $Id: VCC100X86.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting x86.
#
#
-# Copyright (c) 2004-2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/VCC120.kmk b/kBuild/tools/VCC120.kmk
index eb67a1b..cfccd18 100644
--- a/kBuild/tools/VCC120.kmk
+++ b/kBuild/tools/VCC120.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC120.kmk 3037 2017-05-10 09:24:06Z bird $
+# $Id: VCC120.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting $(KBUILD_TARGET).
#
#
-# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/VCC120AMD64.kmk b/kBuild/tools/VCC120AMD64.kmk
index 225b358..739f945 100644
--- a/kBuild/tools/VCC120AMD64.kmk
+++ b/kBuild/tools/VCC120AMD64.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC120AMD64.kmk 3044 2017-05-11 13:29:49Z bird $
+# $Id: VCC120AMD64.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting AMD64.
#
#
-# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/VCC120X86.kmk b/kBuild/tools/VCC120X86.kmk
index 7092f5c..e192f0c 100644
--- a/kBuild/tools/VCC120X86.kmk
+++ b/kBuild/tools/VCC120X86.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC120X86.kmk 3048 2017-05-19 11:55:36Z bird $
+# $Id: VCC120X86.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting x86.
#
#
-# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/VCC70.kmk b/kBuild/tools/VCC70.kmk
index de04bf7..e502ce9 100644
--- a/kBuild/tools/VCC70.kmk
+++ b/kBuild/tools/VCC70.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC70.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: VCC70.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Visual C++ 7.0 (aka Visual Studio .NET), targeting x86.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/VCC80.kmk b/kBuild/tools/VCC80.kmk
index 437b17e..6d204f0 100644
--- a/kBuild/tools/VCC80.kmk
+++ b/kBuild/tools/VCC80.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC80.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: VCC80.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14), targeting $(KBUILD_TARGET).
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/VCC80AMD64.kmk b/kBuild/tools/VCC80AMD64.kmk
index f97d494..5817954 100644
--- a/kBuild/tools/VCC80AMD64.kmk
+++ b/kBuild/tools/VCC80AMD64.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC80AMD64.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: VCC80AMD64.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14), targeting AMD64.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/VCC80X86.kmk b/kBuild/tools/VCC80X86.kmk
index 1df549f..db6c0ab 100644
--- a/kBuild/tools/VCC80X86.kmk
+++ b/kBuild/tools/VCC80X86.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC80X86.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: VCC80X86.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14), targeting x86.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/WATCOMC11C-16.kmk b/kBuild/tools/WATCOMC11C-16.kmk
index a024628..2c588c6 100644
--- a/kBuild/tools/WATCOMC11C-16.kmk
+++ b/kBuild/tools/WATCOMC11C-16.kmk
@@ -1,11 +1,11 @@
-# $Id: WATCOMC11C-16.kmk 2749 2015-01-23 01:01:02Z bird $
+# $Id: WATCOMC11C-16.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Watcom C v11.0c, 16-bit targets.
#
# @remarks wrc is untested, so are DLLs, and programs.
#
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/WATCOMC11C-WL.kmk b/kBuild/tools/WATCOMC11C-WL.kmk
index 34919e3..a48a562 100644
--- a/kBuild/tools/WATCOMC11C-WL.kmk
+++ b/kBuild/tools/WATCOMC11C-WL.kmk
@@ -1,11 +1,11 @@
-# $Id: WATCOMC11C-WL.kmk 2749 2015-01-23 01:01:02Z bird $
+# $Id: WATCOMC11C-WL.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Watcom C/C++ v11.0c, using wlink.
#
# @remarks wrc is untested, so are DLLs, and programs.
#
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/WATCOMC11C.kmk b/kBuild/tools/WATCOMC11C.kmk
index f33dd6b..a0cd745 100644
--- a/kBuild/tools/WATCOMC11C.kmk
+++ b/kBuild/tools/WATCOMC11C.kmk
@@ -1,10 +1,10 @@
-# $Id: WATCOMC11C.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: WATCOMC11C.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - Watcom C v11.0c
#
#
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/WGET.kmk b/kBuild/tools/WGET.kmk
index c644c36..de159af 100644
--- a/kBuild/tools/WGET.kmk
+++ b/kBuild/tools/WGET.kmk
@@ -1,10 +1,10 @@
-# $Id: WGET.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: WGET.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - wget fetchers.
#
#
-# Copyright (c) 2006-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/XGCCAMD64LINUX.kmk b/kBuild/tools/XGCCAMD64LINUX.kmk
index 4b81f42..f0edee2 100644
--- a/kBuild/tools/XGCCAMD64LINUX.kmk
+++ b/kBuild/tools/XGCCAMD64LINUX.kmk
@@ -1,10 +1,10 @@
-# $Id: XGCCAMD64LINUX.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: XGCCAMD64LINUX.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - GCC Cross compiler for AMD64+Linux.
#
#
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/YACC.kmk b/kBuild/tools/YACC.kmk
index 06a84d6..919dfbf 100644
--- a/kBuild/tools/YACC.kmk
+++ b/kBuild/tools/YACC.kmk
@@ -1,10 +1,10 @@
-# $Id: YACC.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: YACC.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# yacc tool
#
#
-# Copyright (c) 2009-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2009-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/YASM.kmk b/kBuild/tools/YASM.kmk
index 8942978..4ca08bb 100644
--- a/kBuild/tools/YASM.kmk
+++ b/kBuild/tools/YASM.kmk
@@ -1,10 +1,10 @@
-# $Id: YASM.kmk 2891 2016-09-08 03:02:58Z bird $
+# $Id: YASM.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - YASM 0.4.0 or later.
#
#
-# Copyright (c) 2006-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/tools/ZIP.kmk b/kBuild/tools/ZIP.kmk
index d5a0217..5dcc82d 100644
--- a/kBuild/tools/ZIP.kmk
+++ b/kBuild/tools/ZIP.kmk
@@ -1,10 +1,10 @@
-# $Id: ZIP.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: ZIP.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Tool Config - The zip/unzip packer/unpacker.
#
#
-# Copyright (c) 2006-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/units/dtrace.kmk b/kBuild/units/dtrace.kmk
index 5d79744..9598fa2 100644
--- a/kBuild/units/dtrace.kmk
+++ b/kBuild/units/dtrace.kmk
@@ -1,10 +1,10 @@
-# $Id: dtrace.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: dtrace.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# DTrace unit.
#
#
-# Copyright (c) 2012-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2012-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/units/lex.kmk b/kBuild/units/lex.kmk
index c69cb05..75d6b12 100644
--- a/kBuild/units/lex.kmk
+++ b/kBuild/units/lex.kmk
@@ -1,10 +1,10 @@
-# $Id: lex.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: lex.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# lex unit.
#
#
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/units/qt3.kmk b/kBuild/units/qt3.kmk
index df70205..62cf855 100644
--- a/kBuild/units/qt3.kmk
+++ b/kBuild/units/qt3.kmk
@@ -1,10 +1,10 @@
-# $Id: qt3.kmk 2805 2016-01-28 11:08:44Z bird $
+# $Id: qt3.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# Qt 3.3.x unit.
#
#
-# Copyright (c) 2008-2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/units/qt4.kmk b/kBuild/units/qt4.kmk
index 553fb89..d03e198 100644
--- a/kBuild/units/qt4.kmk
+++ b/kBuild/units/qt4.kmk
@@ -1,10 +1,10 @@
-# $Id: qt4.kmk 2979 2016-09-27 14:36:32Z bird $
+# $Id: qt4.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# Qt 4 unit.
#
#
-# Copyright (c) 2008-2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/units/qt5.kmk b/kBuild/units/qt5.kmk
index e7e7af9..5bb841e 100644
--- a/kBuild/units/qt5.kmk
+++ b/kBuild/units/qt5.kmk
@@ -1,10 +1,10 @@
-# $Id: qt5.kmk 3016 2017-01-04 12:51:53Z bird $
+# $Id: qt5.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# Qt 5 unit.
#
#
-# Copyright (c) 2008-2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/units/vccprecomp.kmk b/kBuild/units/vccprecomp.kmk
index 290dcad..435d522 100644
--- a/kBuild/units/vccprecomp.kmk
+++ b/kBuild/units/vccprecomp.kmk
@@ -1,10 +1,10 @@
-# $Id: vccprecomp.kmk 2956 2016-09-21 19:37:20Z bird $
+# $Id: vccprecomp.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild Unit - Target Level Precompiled Headers for Visual C++.
#
#
-# Copyright (c) 2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2016-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/units/yacc.kmk b/kBuild/units/yacc.kmk
index 7f96431..202aff1 100644
--- a/kBuild/units/yacc.kmk
+++ b/kBuild/units/yacc.kmk
@@ -1,10 +1,10 @@
-# $Id: yacc.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: yacc.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# yacc/bison unit.
#
#
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/kBuild/up.kmk b/kBuild/up.kmk
index 83d5dc2..30844f6 100644
--- a/kBuild/up.kmk
+++ b/kBuild/up.kmk
@@ -1,11 +1,11 @@
-# $Id: up.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: up.kmk 3121 2017-10-31 10:58:59Z bird $
## @file
# kBuild - File included at top of a up forwarder makefile.
# This method is DEPRECATED. Use Makefile.kup files instead.
#
#
-# Copyright (c) 2005-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2005-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
#
# This file is part of kBuild.
#
diff --git a/src/kmk/Makefile.am b/src/kmk/Makefile.am
index bad8c4a..70c4151 100644
--- a/src/kmk/Makefile.am
+++ b/src/kmk/Makefile.am
@@ -57,6 +57,7 @@ kmk_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \
../lib/md5.c \
../lib/kDep.c \
../lib/kbuild_version.c \
+ ../lib/dos2unix.c \
../lib/maybe_con_fwrite.c \
\
kmkbuiltin.c \
diff --git a/src/kmk/kmkbuiltin/cat.c b/src/kmk/kmkbuiltin/cat.c
index d9fc0a2..a647dea 100644
--- a/src/kmk/kmkbuiltin/cat.c
+++ b/src/kmk/kmkbuiltin/cat.c
@@ -80,14 +80,6 @@ __FBSDID("$FreeBSD: src/bin/cat/cat.c,v 1.32 2005/01/10 08:39:20 imp Exp $");
#include "kmkbuiltin.h"
-#ifdef KBUILD_OS_WINDOWS
-/* This is a trick to seriuosly speed up console output windows. */
-# undef write
-# define write maybe_con_write
-extern ssize_t maybe_con_write(int, void const *, size_t);
-#endif
-
-
int bflag, eflag, nflag, sflag, tflag, vflag;
/*int rval;*/
const char *filename;
diff --git a/src/kmk/kmkbuiltin/install.c b/src/kmk/kmkbuiltin/install.c
index c0fced1..962f206 100644
--- a/src/kmk/kmkbuiltin/install.c
+++ b/src/kmk/kmkbuiltin/install.c
@@ -49,9 +49,6 @@ __FBSDID("$FreeBSD: src/usr.bin/xinstall/xinstall.c,v 1.66 2005/01/25 14:34:57 s
#include "config.h"
#ifndef _MSC_VER
# include <sys/param.h>
-# ifdef USE_MMAP
-# include <sys/mman.h>
-# endif
# if !defined(__HAIKU__) && !defined(__gnu_hurd__)
# include <sys/mount.h>
# endif
@@ -93,24 +90,16 @@ __FBSDID("$FreeBSD: src/usr.bin/xinstall/xinstall.c,v 1.66 2005/01/25 14:34:57 s
#endif
#include "kmkbuiltin.h"
#include "k/kDefs.h" /* for K_OS */
+#include "dos2unix.h"
extern void * bsd_setmode(const char *p);
extern mode_t bsd_getmode(const void *bbox, mode_t omode);
-#ifndef __unused
-# define __unused
-#endif
-
#ifndef MAXBSIZE
# define MAXBSIZE 0x20000
#endif
-/* Bootstrap aid - this doesn't exist in most older releases */
-#ifndef MAP_FAILED
-#define MAP_FAILED ((void *)-1) /* from <sys/mman.h> */
-#endif
-
#define MAX_CMP_SIZE (16 * 1024 * 1024)
#define DIRECTORY 0x01 /* Tell install it's a directory. */
@@ -139,6 +128,7 @@ static mode_t mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
static const char *suffix = BACKUP_SUFFIX;
static int ignore_perm_errors;
static int hard_link_files_when_possible;
+static int dos2unix;
static struct option long_options[] =
{
@@ -148,23 +138,24 @@ static struct option long_options[] =
{ "no-ignore-perm-errors", no_argument, 0, 264 },
{ "hard-link-files-when-possible", no_argument, 0, 265 },
{ "no-hard-link-files-when-possible", no_argument, 0, 266 },
+ { "dos2unix", no_argument, 0, 267 },
+ { "unix2dos", no_argument, 0, 268 },
{ 0, 0, 0, 0 },
};
-static int copy(int, const char *, int, const char *, off_t);
-static int compare(int, const char *, size_t, int, const char *, size_t);
+static int copy(int, const char *, int *, const char *);
+static int compare(int, size_t, int, size_t);
static int create_newfile(const char *, int, struct stat *);
static int create_tempfile(const char *, char *, size_t);
static int install(const char *, const char *, u_long, u_int);
static int install_dir(char *);
static u_long numeric_id(const char *, const char *);
static int strip(const char *);
-#ifdef USE_MMAP
-static int trymmap(int);
-#endif
static int usage(FILE *);
static char *last_slash(const char *);
+static KBOOL needs_dos2unix_conversion(const char *pszFilename);
+static KBOOL needs_unix2dos_conversion(const char *pszFilename);
int
kmk_builtin_install(int argc, char *argv[], char ** envp)
@@ -178,21 +169,22 @@ kmk_builtin_install(int argc, char *argv[], char ** envp)
const char *group, *owner, *to_name;
(void)envp;
- /* reinitialize globals */
- mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
- suffix = BACKUP_SUFFIX;
- gid = 0;
- uid = 0;
- dobackup = docompare = dodir = dopreserve = dostrip = nommap = safecopy = verbose = mode_given = 0;
+ /* reinitialize globals */
+ mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
+ suffix = BACKUP_SUFFIX;
+ gid = 0;
+ uid = 0;
+ dobackup = docompare = dodir = dopreserve = dostrip = nommap = safecopy = verbose = mode_given = 0;
ignore_perm_errors = geteuid() != 0;
- hard_link_files_when_possible = 0;
+ hard_link_files_when_possible = 0;
+ dos2unix = 0;
- /* reset getopt and set progname. */
- g_progname = argv[0];
- opterr = 1;
- optarg = NULL;
- optopt = 0;
- optind = 0; /* init */
+ /* reset getopt and set progname. */
+ g_progname = argv[0];
+ opterr = 1;
+ optarg = NULL;
+ optopt = 0;
+ optind = 0; /* init */
iflags = 0;
group = owner = NULL;
@@ -269,6 +261,12 @@ kmk_builtin_install(int argc, char *argv[], char ** envp)
case 266:
hard_link_files_when_possible = 0;
break;
+ case 267:
+ dos2unix = 1;
+ break;
+ case 268:
+ dos2unix = -1;
+ break;
case '?':
default:
return usage(stderr);
@@ -286,6 +284,18 @@ kmk_builtin_install(int argc, char *argv[], char ** envp)
if (argc == 0 || (argc == 1 && !dodir))
return usage(stderr);
+ /* and unix2dos doesn't combine well with a couple of other options. */
+ if (dos2unix != 0) {
+ if (docompare) {
+ warnx("-C/-p and --dos2unix/unix2dos may not be specified together");
+ return usage(stderr);
+ }
+ if (dostrip) {
+ warnx("-s and --dos2unix/unix2dos may not be specified together");
+ return usage(stderr);
+ }
+ }
+
/* need to make a temp copy so we can compare stripped version */
if (docompare && dostrip)
safecopy = 1;
@@ -483,6 +493,10 @@ install(const char *from_name, const char *to_name, u_long fset, u_int flags)
why_not = "uid mismatch";
} else if (gid != (gid_t)-1 && gid != from_sb.st_gid) {
why_not = "gid mismatch";
+ } else if (dos2unix > 0 && needs_dos2unix_conversion(from_name)) {
+ why_not = "dos2unix";
+ } else if (dos2unix < 0 && needs_unix2dos_conversion(from_name)) {
+ why_not = "unix2dos";
} else {
int rcLink = link(from_name, to_name);
if (rcLink != 0 && errno == EEXIST) {
@@ -519,9 +533,8 @@ install(const char *from_name, const char *to_name, u_long fset, u_int flags)
if (devnull)
files_match = to_sb.st_size == 0;
else
- files_match = !(compare(from_fd, from_name,
- (size_t)from_sb.st_size, to_fd,
- to_name, (size_t)to_sb.st_size));
+ files_match = !compare(from_fd, (size_t)from_sb.st_size,
+ to_fd, (size_t)to_sb.st_size);
/* Close "to" file unless we match. */
if (!files_match) {
@@ -549,8 +562,7 @@ install(const char *from_name, const char *to_name, u_long fset, u_int flags)
from_name, to_name);
}
if (!devnull) {
- rc = copy(from_fd, from_name, to_fd,
- tempcopy ? tempfile : to_name, from_sb.st_size);
+ rc = copy(from_fd, from_name, &to_fd, tempcopy ? tempfile : to_name);
if (rc)
goto l_done;
}
@@ -600,8 +612,8 @@ install(const char *from_name, const char *to_name, u_long fset, u_int flags)
goto l_done;
}
- if (compare(temp_fd, tempfile, (size_t)temp_sb.st_size, to_fd,
- to_name, (size_t)to_sb.st_size) == 0) {
+ if (compare(temp_fd, (size_t)temp_sb.st_size,
+ to_fd, (size_t)to_sb.st_size) == 0) {
/*
* If target has more than one link we need to
* replace it in order to snap the extra links.
@@ -778,64 +790,35 @@ l_done:
* compare two files; non-zero means files differ
*/
static int
-compare(int from_fd, const char *from_name __unused, size_t from_len,
- int to_fd, const char *to_name __unused, size_t to_len)
+compare(int from_fd, size_t from_len, int to_fd, size_t to_len)
{
- char *p, *q;
+ char buf1[MAXBSIZE];
+ char buf2[MAXBSIZE];
+ int n1, n2;
int rv;
- int done_compare;
- rv = 0;
if (from_len != to_len)
return 1;
if (from_len <= MAX_CMP_SIZE) {
-#ifdef USE_MMAP
- done_compare = 0;
- if (trymmap(from_fd) && trymmap(to_fd)) {
- p = mmap(NULL, from_len, PROT_READ, MAP_SHARED, from_fd, (off_t)0);
- if (p == (char *)MAP_FAILED)
- goto out;
- q = mmap(NULL, from_len, PROT_READ, MAP_SHARED, to_fd, (off_t)0);
- if (q == (char *)MAP_FAILED) {
- munmap(p, from_len);
- goto out;
- }
-
- rv = memcmp(p, q, from_len);
- munmap(p, from_len);
- munmap(q, from_len);
- done_compare = 1;
- }
- out:
-#else
- (void)p; (void)q;
- done_compare = 0;
-#endif
- if (!done_compare) {
- char buf1[MAXBSIZE];
- char buf2[MAXBSIZE];
- int n1, n2;
-
- rv = 0;
- lseek(from_fd, 0, SEEK_SET);
- lseek(to_fd, 0, SEEK_SET);
- while (rv == 0) {
- n1 = read(from_fd, buf1, sizeof(buf1));
- if (n1 == 0)
- break; /* EOF */
- else if (n1 > 0) {
- n2 = read(to_fd, buf2, n1);
- if (n2 == n1)
- rv = memcmp(buf1, buf2, n1);
- else
- rv = 1; /* out of sync */
- } else
- rv = 1; /* read failure */
- }
- lseek(from_fd, 0, SEEK_SET);
- lseek(to_fd, 0, SEEK_SET);
+ rv = 0;
+ lseek(from_fd, 0, SEEK_SET);
+ lseek(to_fd, 0, SEEK_SET);
+ while (rv == 0) {
+ n1 = read(from_fd, buf1, sizeof(buf1));
+ if (n1 == 0)
+ break; /* EOF */
+ else if (n1 > 0) {
+ n2 = read(to_fd, buf2, n1);
+ if (n2 == n1)
+ rv = memcmp(buf1, buf2, n1);
+ else
+ rv = 1; /* out of sync */
+ } else
+ rv = 1; /* read failure */
}
+ lseek(from_fd, 0, SEEK_SET);
+ lseek(to_fd, 0, SEEK_SET);
} else
rv = 1; /* don't bother in this case */
@@ -913,17 +896,43 @@ create_newfile(const char *path, int target, struct stat *sbp)
}
/*
+ * Write error handler.
+ */
+static int write_error(int *ptr_to_fd, const char *to_name, int nw)
+{
+ int serrno = errno;
+ (void)close(*ptr_to_fd);
+ *ptr_to_fd = -1;
+ (void)unlink(to_name);
+ errno = nw > 0 ? EIO : serrno;
+ return err(EX_OSERR, "%s", to_name);
+}
+
+/*
+ * Read error handler.
+ */
+static int read_error(const char *from_name, int *ptr_to_fd, const char *to_name)
+{
+ int serrno = errno;
+ (void)close(*ptr_to_fd);
+ *ptr_to_fd = -1;
+ (void)unlink(to_name);
+ errno = serrno;
+ return err(EX_OSERR, "%s", from_name);
+}
+
+/*
* copy --
* copy from one file to another
*/
static int
-copy(int from_fd, const char *from_name, int to_fd, const char *to_name,
- off_t size)
+copy(int from_fd, const char *from_name, int *ptr_to_fd, const char *to_name)
{
+ KBOOL fPendingCr = K_FALSE;
+ KSIZE cchDst;
int nr, nw;
- int serrno;
- char *p, buf[MAXBSIZE];
- int done_copy;
+ char buf[MAXBSIZE];
+ int to_fd = *ptr_to_fd;
/* Rewind file descriptors. */
if (lseek(from_fd, (off_t)0, SEEK_SET) == (off_t)-1)
@@ -931,43 +940,63 @@ copy(int from_fd, const char *from_name, int to_fd, const char *to_name,
if (lseek(to_fd, (off_t)0, SEEK_SET) == (off_t)-1)
return err(EX_OSERR, "lseek: %s", to_name);
- /*
- * Mmap and write if less than 8M (the limit is so we don't totally
- * trash memory on big files. This is really a minor hack, but it
- * wins some CPU back.
- */
- done_copy = 0;
-#ifdef USE_MMAP
- if (size <= 8 * 1048576 && trymmap(from_fd) &&
- (p = mmap(NULL, (size_t)size, PROT_READ, MAP_SHARED,
- from_fd, (off_t)0)) != (char *)MAP_FAILED) {
- if ((nw = write(to_fd, p, size)) != size) {
- serrno = errno;
- (void)unlink(to_name);
- errno = nw > 0 ? EIO : serrno;
- err(EX_OSERR, "%s", to_name);
- }
- done_copy = 1;
- }
-#else
- (void)p; (void)size;
-#endif
- if (!done_copy) {
+ if (dos2unix == 0) {
+ /*
+ * Copy bytes, no conversion.
+ */
while ((nr = read(from_fd, buf, sizeof(buf))) > 0)
- if ((nw = write(to_fd, buf, nr)) != nr) {
- serrno = errno;
- (void)unlink(to_name);
- errno = nw > 0 ? EIO : serrno;
- return err(EX_OSERR, "%s", to_name);
- }
- if (nr != 0) {
- serrno = errno;
- (void)unlink(to_name);
- errno = serrno;
- return err(EX_OSERR, "%s", from_name);
+ if ((nw = write(to_fd, buf, nr)) != nr)
+ return write_error(ptr_to_fd, to_name, nw);
+ } else if (dos2unix > 0) {
+ /*
+ * CRLF -> LF is a reduction, so we can work with full buffers.
+ */
+ while ((nr = read(from_fd, buf, sizeof(buf))) > 0) {
+ if ( fPendingCr
+ && buf[0] != '\n'
+ && (nw = write(to_fd, "\r", 1)) != 1)
+ return write_error(ptr_to_fd, to_name, nw);
+
+ fPendingCr = dos2unix_convert_to_unix(buf, nr, buf, &cchDst);
+
+ nw = write(to_fd, buf, cchDst);
+ if (nw != (int)cchDst)
+ return write_error(ptr_to_fd, to_name, nw);
+ }
+ } else {
+ /*
+ * LF -> CRLF is an expansion, so we work with half buffers, reading
+ * into the upper half of the buffer and expanding into the full buffer.
+ * The conversion will never expand to more than the double size.
+ *
+ * Note! We do not convert valid CRLF line endings. This gives us
+ * valid DOS text, but no round-trip conversion.
+ */
+ char * const pchSrc = &buf[sizeof(buf) / 2];
+ while ((nr = read(from_fd, pchSrc, sizeof(buf) / 2)) > 0) {
+ if ( fPendingCr
+ && pchSrc[0] != '\n'
+ && (nw = write(to_fd, "\r", 1))!= 1)
+ return write_error(ptr_to_fd, to_name, nw);
+
+ fPendingCr = dos2unix_convert_to_dos(pchSrc, nr, buf, &cchDst);
+
+ nw = write(to_fd, buf, cchDst);
+ if (nw != (int)cchDst)
+ return write_error(ptr_to_fd, to_name, nw);
}
}
- return EX_OK;
+
+ /* Check for read error. */
+ if (nr != 0)
+ return read_error(from_name, ptr_to_fd, to_name);
+
+ /* When converting, we might have a pending final CR to write. */
+ if ( fPendingCr
+ && (nw = write(to_fd, "\r", 1))!= 1)
+ return write_error(ptr_to_fd, to_name, nw);
+
+ return EX_OK;
}
/*
@@ -1064,8 +1093,8 @@ usage(FILE *pf)
{
fprintf(pf,
"usage: %s [-bCcpSsv] [--[no-]hard-link-files-when-possible]\n"
-" [--[no-]ignore-perm-errors] [-B suffix] [-f flags]\n"
-" [-g group] [-m mode] [-o owner] file1 file2\n"
+" [--[no-]ignore-perm-errors] [-B suffix] [-f flags] [-g group]\n"
+" [-m mode] [-o owner] [--dos2unix|--unix2dos] file1 file2\n"
" or: %s [-bCcpSsv] [--[no-]ignore-perm-errors] [-B suffix] [-f flags]\n"
" [-g group] [-m mode] [-o owner] file1 ... fileN directory\n"
" or: %s -d [-v] [-g group] [-m mode] [-o owner] directory ...\n"
@@ -1075,31 +1104,6 @@ usage(FILE *pf)
return EX_USAGE;
}
-#ifdef USE_MMAP
-/*
- * trymmap --
- * return true (1) if mmap should be tried, false (0) if not.
- */
-static int
-trymmap(int fd)
-{
-/*
- * The ifdef is for bootstrapping - f_fstypename doesn't exist in
- * pre-Lite2-merge systems.
- */
-#ifdef MFSNAMELEN
- struct statfs stfs;
-
- if (nommap || fstatfs(fd, &stfs) != 0)
- return (0);
- if (strcmp(stfs.f_fstypename, "ufs") == 0 ||
- strcmp(stfs.f_fstypename, "cd9660") == 0)
- return (1);
-#endif
- return (0);
-}
-#endif
-
/* figures out where the last slash or colon is. */
static char *
last_slash(const char *path)
@@ -1124,3 +1128,31 @@ last_slash(const char *path)
#endif
}
+/**
+ * Checks if @a pszFilename actually needs dos2unix conversion.
+ *
+ * @returns boolean.
+ * @param pszFilename The name of the file to check.
+ */
+static KBOOL needs_dos2unix_conversion(const char *pszFilename)
+{
+ KU32 fStyle = 0;
+ int iErr = dos2unix_analyze_file(pszFilename, &fStyle, NULL, NULL);
+ return iErr != 0
+ || (fStyle & (DOS2UNIX_STYLE_MASK | DOS2UNIX_F_BINARY)) != DOS2UNIX_STYLE_UNIX;
+}
+
+/**
+ * Checks if @a pszFilename actually needs unix2dos conversion.
+ *
+ * @returns boolean.
+ * @param pszFilename The name of the file to check.
+ */
+static KBOOL needs_unix2dos_conversion(const char *pszFilename)
+{
+ KU32 fStyle = 0;
+ int iErr = dos2unix_analyze_file(pszFilename, &fStyle, NULL, NULL);
+ return iErr != 0
+ || (fStyle & (DOS2UNIX_STYLE_MASK | DOS2UNIX_F_BINARY)) != DOS2UNIX_STYLE_DOS;
+}
+
diff --git a/src/kmk/kmkbuiltin/mscfakes.c b/src/kmk/kmkbuiltin/mscfakes.c
index 26d475c..82a7a61 100644
--- a/src/kmk/kmkbuiltin/mscfakes.c
+++ b/src/kmk/kmkbuiltin/mscfakes.c
@@ -1,4 +1,4 @@
-/* $Id: mscfakes.c 3094 2017-10-14 03:32:50Z bird $ */
+/* $Id: mscfakes.c 3117 2017-10-30 17:49:42Z bird $ */
/** @file
* Fake Unix stuff for MSC.
*/
@@ -48,6 +48,8 @@
#include <Windows.h>
#undef timeval
+extern ssize_t maybe_con_write(int, void const *, size_t);
+
/*******************************************************************************
* Internal Functions *
@@ -473,9 +475,14 @@ int snprintf(char *buf, size_t size, const char *fmt, ...)
XXX: Probably need to hook into fwrite as well. */
ssize_t msc_write(int fd, const void *pvSrc, size_t cbSrc)
{
+#define MSC_WRITE_MAX_CHUNK (UINT_MAX / 32)
ssize_t cbRet;
- if (cbSrc < UINT_MAX / 4)
+ if (cbSrc <= MSC_WRITE_MAX_CHUNK)
{
+ /* Console output optimization: */
+ if (cbSrc > 0 && isatty(fd))
+ return maybe_con_write(fd, pvSrc, cbSrc);
+
#ifndef MSC_WRITE_TEST
cbRet = _write(fd, pvSrc, (unsigned int)cbSrc);
#else
@@ -484,7 +491,7 @@ ssize_t msc_write(int fd, const void *pvSrc, size_t cbSrc)
if (cbRet < 0)
{
/* ENOSPC on pipe kludge. */
- int cbLimit;
+ unsigned int cbLimit;
int cSinceLastSuccess;
if (cbSrc == 0)
@@ -501,7 +508,7 @@ ssize_t msc_write(int fd, const void *pvSrc, size_t cbSrc)
/* Likely a full pipe buffer, try write smaller amounts and do some
sleeping inbetween each unsuccessful one. */
- cbLimit = cbSrc / 4;
+ cbLimit = (unsigned)(cbSrc / 4);
if (cbLimit < 4)
cbLimit = 4;
else if (cbLimit > 512)
@@ -512,13 +519,18 @@ ssize_t msc_write(int fd, const void *pvSrc, size_t cbSrc)
cbLimit = 4;
#endif
- while (cbSrc > 0)
+ while ((ssize_t)cbSrc > 0)
{
- unsigned int cbAttempt = cbSrc > cbLimit ? (int)cbLimit : (int)cbSrc;
+ unsigned int cbAttempt = cbSrc > cbLimit ? cbLimit : (unsigned int)cbSrc;
ssize_t cbActual = _write(fd, pvSrc, cbAttempt);
if (cbActual > 0)
{
- assert(cbActual <= (ssize_t)cbAttempt);
+ /* For some reason, it seems like we cannot trust _write to return
+ a number that's less or equal to the number of bytes we passed
+ in to the call. (Also reason for signed check in loop.) */
+ if (cbActual > cbAttempt)
+ cbActual = cbAttempt;
+
pvSrc = (char *)pvSrc + cbActual;
cbSrc -= cbActual;
cbRet += cbActual;
@@ -558,7 +570,7 @@ ssize_t msc_write(int fd, const void *pvSrc, size_t cbSrc)
cbRet = 0;
while (cbSrc > 0)
{
- size_t cbToWrite = cbSrc > UINT_MAX / 4 ? UINT_MAX / 4 : cbSrc;
+ size_t cbToWrite = cbSrc > MSC_WRITE_MAX_CHUNK ? MSC_WRITE_MAX_CHUNK : cbSrc;
ssize_t cbWritten = msc_write(fd, pvSrc, cbToWrite);
if (cbWritten > 0)
{
diff --git a/src/kmk/main.c b/src/kmk/main.c
index 2db8638..e0203c8 100644
--- a/src/kmk/main.c
+++ b/src/kmk/main.c
@@ -1409,11 +1409,18 @@ main (int argc, char **argv, char **envp)
# endif
# endif /* !ELECTRIC_HEAP */
+# ifdef KMK
+ /* Clear the SEM_NOGPFAULTERRORBOX flag so WER will generate dumps when we run
+ under cygwin. To void popups, set WER registry value DontShowUI to 1. */
+ if (getenv("KMK_NO_SET_ERROR_MODE") == NULL)
+ SetErrorMode(SetErrorMode(0) & ~SEM_NOGPFAULTERRORBOX);
+# endif
+
/* start off assuming we have no shell */
unixy_shell = 0;
no_default_sh_exe = 1;
#endif
-# ifdef CONFIG_WITH_FAST_IS_SPACE /* bird */
+#ifdef CONFIG_WITH_FAST_IS_SPACE /* bird */
memset (space_map, '\0', sizeof(space_map));
set_space_map_entry (' ');
set_space_map_entry ('\f');
@@ -1421,7 +1428,7 @@ main (int argc, char **argv, char **envp)
set_space_map_entry ('\r');
set_space_map_entry ('\t');
set_space_map_entry ('\v');
-# endif /* CONFIG_WITH_FAST_IS_SPACE */
+#endif /* CONFIG_WITH_FAST_IS_SPACE */
#ifdef CONFIG_WITH_PRINT_TIME_SWITCH
make_start_ts = nano_timestamp ();
@@ -2066,6 +2073,7 @@ main (int argc, char **argv, char **envp)
strcpy (default_shell + len, "/kmk_ash.exe");
no_default_sh_exe = 0;
batch_mode_shell = 1;
+ unixy_shell = 1;
}
#else /* !KMK */
no_default_sh_exe = !find_and_set_default_shell(NULL);
diff --git a/src/lib/Makefile.kmk b/src/lib/Makefile.kmk
index b3f5a67..d148a07 100644
--- a/src/lib/Makefile.kmk
+++ b/src/lib/Makefile.kmk
@@ -1,4 +1,4 @@
-# $Id: Makefile.kmk 3060 2017-09-21 15:11:07Z bird $
+# $Id: Makefile.kmk 3114 2017-10-29 18:02:04Z bird $
## @file
# Sub-makefile for various libraries and stuff.
#
@@ -40,6 +40,7 @@ kUtil_SOURCES = \
md5.c \
maybe_con_write.c \
maybe_con_fwrite.c \
+ dos2unix.c \
kbuild_version.c
kUtil_SOURCES.win = \
msc_buffered_printf.c \
diff --git a/src/lib/dos2unix.c b/src/lib/dos2unix.c
new file mode 100644
index 0000000..308a58f
--- /dev/null
+++ b/src/lib/dos2unix.c
@@ -0,0 +1,302 @@
+/* $Id: dos2unix.c 3114 2017-10-29 18:02:04Z bird $ */
+/** @file
+ * dos2unix - Line ending conversion routines.
+ */
+
+/*
+ * Copyright (c) 2017 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Alternatively, the content of this file may be used under the terms of the
+ * GPL version 2 or later, or LGPL version 2.1 or later.
+ */
+
+
+/*********************************************************************************************************************************
+* Header Files *
+*********************************************************************************************************************************/
+#include "dos2unix.h"
+#include <k/kDefs.h>
+#include <errno.h>
+#include <fcntl.h>
+#if K_OS == K_OS_WINDOWS
+# include <io.h>
+#else
+# include <unistd.h>
+#endif
+#include <assert.h>
+
+#ifndef O_BINARY
+# ifdef _O_BINARY
+# define O_BINARY _O_BINARY
+# else
+# define O_BINARY 0
+# endif
+#endif
+
+
+/*********************************************************************************************************************************
+* Defined Constants And Macros *
+*********************************************************************************************************************************/
+#define STACK_BUF_SIZE 0x20000
+
+#define DOS2UNIX_LF 0x0a
+#define DOS2UNIX_CR 0x0d
+
+
+
+/**
+ * Does a line ending analysis of the given file.
+ *
+ * @returns 0 on success, errno value on open or read error.
+ * @param pszFilename The path to the file
+ * @param pfStyle Where to return the DOS2UNIX_STYLE_XXX and
+ * DOS2UNIX_F_XXX flags.
+ * @param pcDosEols Where to return the number of DOS end-of-line
+ * sequences found. Optional.
+ * @param pcUnixEols Where to return the number of UNIX end-of-line
+ * sequences found.
+ */
+int dos2unix_analyze_file(const char *pszFilename, KU32 *pfStyle, KSIZE *pcDosEols, KSIZE *pcUnixEols)
+{
+ int iRet = 0;
+ int fd = open(pszFilename, O_RDONLY | O_BINARY);
+ if (fd >= 0)
+ {
+ iRet = dos2unix_analyze_fd(fd, pfStyle, pcDosEols, pcUnixEols);
+ close(fd);
+ }
+ else
+ {
+ iRet = errno;
+ *pfStyle = DOS2UNIX_STYLE_NONE;
+ if (pcUnixEols)
+ *pcUnixEols = 0;
+ if (pcDosEols)
+ *pcDosEols = 0;
+ }
+ return iRet;
+}
+
+/**
+ * Does a line ending analysis of the given file descriptor.
+ *
+ * @returns 0 on success, errno value on open or read error.
+ * @param fd The file descriptor to analyze. Caller must
+ * place this as the desired position.
+ * @param pfStyle Where to return the DOS2UNIX_STYLE_XXX and
+ * DOS2UNIX_F_XXX flags.
+ * @param pcDosEols Where to return the number of DOS end-of-line
+ * sequences found. Optional.
+ * @param pcUnixEols Where to return the number of UNIX end-of-line
+ * sequences found.
+ */
+int dos2unix_analyze_fd(int fd, KU32 *pfStyle, KSIZE *pcDosEols, KSIZE *pcUnixEols)
+{
+ KSIZE cUnixEols = 0;
+ KSIZE cDosEols = 0;
+ KSIZE cLoneCrs = 0;
+ KBOOL fPendingCr = K_FALSE;
+ int iRet = 0;
+
+ /*
+ * Do the analysis.
+ */
+ *pfStyle = DOS2UNIX_STYLE_NONE;
+ for (;;)
+ {
+ char achBuf[STACK_BUF_SIZE];
+ int cchRead = read(fd, achBuf, sizeof(achBuf));
+ if (cchRead > 0)
+ {
+ int off = 0;
+ if (fPendingCr)
+ {
+ if (achBuf[0] == DOS2UNIX_LF)
+ {
+ off++;
+ cDosEols++;
+ }
+ else
+ cLoneCrs++;
+ fPendingCr = K_FALSE;
+ }
+
+ while (off < cchRead)
+ {
+ char ch = achBuf[off++];
+ if ((unsigned char)ch > (unsigned char)DOS2UNIX_CR)
+ { /* likely */ }
+ else if (ch == DOS2UNIX_CR)
+ {
+ if (off < cchRead && achBuf[off] == DOS2UNIX_CR)
+ cDosEols++;
+ else
+ {
+ fPendingCr = K_TRUE;
+ while (off < cchRead)
+ {
+ ch = achBuf[off++];
+ if (ch != DOS2UNIX_CR)
+ {
+ if (ch == DOS2UNIX_LF)
+ cDosEols++;
+ else
+ cLoneCrs++;
+ fPendingCr = K_FALSE;
+ break;
+ }
+ cLoneCrs++;
+ }
+ }
+ }
+ else if (ch == DOS2UNIX_LF)
+ cUnixEols++;
+ else if (ch == '\0')
+ *pfStyle |= DOS2UNIX_F_BINARY;
+ }
+ }
+ else
+ {
+ if (cchRead < 0)
+ iRet = errno;
+ if (fPendingCr)
+ cLoneCrs++;
+ break;
+ }
+ }
+
+ /*
+ * Set return values.
+ */
+ if (cUnixEols > 0 && cDosEols == 0)
+ *pfStyle |= DOS2UNIX_STYLE_UNIX;
+ else if (cDosEols > 0 && cUnixEols == 0)
+ *pfStyle |= DOS2UNIX_STYLE_DOS;
+ else if (cDosEols != 0 && cUnixEols != 0)
+ *pfStyle |= DOS2UNIX_STYLE_MIXED;
+ if (pcUnixEols)
+ *pcUnixEols = cUnixEols;
+ if (pcDosEols)
+ *pcDosEols = cDosEols;
+
+ return iRet;
+}
+
+
+/**
+ * Converts a buffer to unix line (LF) endings.
+ *
+ * @retval K_TRUE if pending CR. The caller must handle this case.
+ * @retval K_FALSE if no pending CR.
+ *
+ * @param pchSrc The input buffer.
+ * @param cchSrc Number of characters to convert from the input
+ * buffer.
+ * @param pchDst The output buffer. This must be at least as big as
+ * the input. It is okay if this overlaps with the
+ * source buffer, as long as this is at the same or a
+ * lower address.
+ * @param pcchDst Where to return the number of characters in the
+ * output buffer.
+ */
+KBOOL dos2unix_convert_to_unix(const char *pchSrc, KSIZE cchSrc, char *pchDst, KSIZE *pcchDst)
+{
+ KSIZE offDst = 0;
+ while (cchSrc-- > 0)
+ {
+ char ch = *pchSrc++;
+ if ((unsigned char)ch != (unsigned char)DOS2UNIX_CR)
+ pchDst[offDst++] = ch;
+ else if (cchSrc > 0 && *pchSrc == DOS2UNIX_LF)
+ {
+ pchDst[offDst++] = DOS2UNIX_LF;
+ cchSrc--;
+ pchSrc++;
+ }
+ else if (cchSrc == 0)
+ {
+ *pcchDst = offDst;
+ return K_TRUE;
+ }
+ else
+ pchDst[offDst++] = ch;
+ }
+
+ *pcchDst = offDst;
+ return K_FALSE;
+}
+
+
+/**
+ * Converts a buffer to DOS (CRLF) endings.
+ *
+ * @retval K_TRUE if pending CR. The caller must handle this case.
+ * @retval K_FALSE if no pending CR.
+ *
+ * @param pchSrc The input buffer.
+ * @param cchSrc Number of characters to convert from the input
+ * buffer.
+ * @param pchDst The output buffer. This must be at least _twice_ as
+ * big as the input. It is okay if the top half of the
+ * buffer overlaps with the source buffer.
+ * @param pcchDst Where to return the number of characters in the
+ * output buffer.
+ */
+KBOOL dos2unix_convert_to_dos(const char *pchSrc, KSIZE cchSrc, char *pchDst, KSIZE *pcchDst)
+{
+ KSIZE offDst = 0;
+ while (cchSrc-- > 0)
+ {
+ char ch = *pchSrc++;
+ if ((unsigned char)ch > (unsigned char)DOS2UNIX_CR)
+ pchDst[offDst++] = ch;
+ else if (ch == DOS2UNIX_CR)
+ {
+ /* We treat CR kind of like an escape character. */
+ do
+ {
+ if (cchSrc > 0)
+ {
+ pchDst[offDst++] = ch;
+ cchSrc--;
+ ch = *pchSrc++;
+ }
+ else
+ {
+ *pcchDst = offDst;
+ return K_TRUE;
+ }
+ } while (ch == DOS2UNIX_CR);
+ pchDst[offDst++] = ch;
+ }
+ else if (ch == DOS2UNIX_LF)
+ {
+ pchDst[offDst++] = DOS2UNIX_CR;
+ pchDst[offDst++] = DOS2UNIX_LF;
+ }
+ else
+ pchDst[offDst++] = ch;
+ }
+
+ *pcchDst = offDst;
+ return K_FALSE;
+}
+
diff --git a/src/lib/dos2unix.h b/src/lib/dos2unix.h
new file mode 100644
index 0000000..bb85137
--- /dev/null
+++ b/src/lib/dos2unix.h
@@ -0,0 +1,50 @@
+/* $Id: dos2unix.h 3114 2017-10-29 18:02:04Z bird $ */
+/** @file
+ * dos2unix - Line ending conversion routines.
+ */
+
+/*
+ * Copyright (c) 2017 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Alternatively, the content of this file may be used under the terms of the
+ * GPL version 2 or later, or LGPL version 2.1 or later.
+ */
+
+#ifndef ___lib_dos2unix_h___
+#define ___lib_dos2unix_h___
+
+#include <k/kTypes.h>
+
+#define DOS2UNIX_STYLE_NONE 0x00
+#define DOS2UNIX_STYLE_DOS 0x01
+#define DOS2UNIX_STYLE_UNIX 0x02
+#define DOS2UNIX_STYLE_MIXED 0x03
+#define DOS2UNIX_STYLE_MASK 0x03
+#define DOS2UNIX_F_BINARY 0x80 /**< Probably a binary file. */
+
+int dos2unix_analyze_file(const char *pszFilename, KU32 *pfStyle, KSIZE *pcDosEols, KSIZE *pcUnixEols);
+int dos2unix_analyze_fd(int fd, KU32 *pfStyle, KSIZE *pcDosEols, KSIZE *pcUnixEols);
+
+KBOOL dos2unix_convert_to_unix(const char *pchSrc, KSIZE cchSrc, char *pchDst, KSIZE *pcchDst);
+KBOOL dos2unix_convert_to_dos(const char *pchSrc, KSIZE cchSrc, char *pchDst, KSIZE *pcchDst);
+
+#endif
+
diff --git a/src/lib/kDep.c b/src/lib/kDep.c
index 09415ee..f7a09bc 100644
--- a/src/lib/kDep.c
+++ b/src/lib/kDep.c
@@ -1,4 +1,4 @@
-/* $Id: kDep.c 3105 2017-10-20 16:40:25Z bird $ */
+/* $Id: kDep.c 3114 2017-10-29 18:02:04Z bird $ */
/** @file
* kDep - Common Dependency Managemnt Code.
*/
@@ -68,7 +68,7 @@ extern int kwFsPathExists(const char *pszPath);
*********************************************************************************************************************************/
/* For the GNU/hurd weirdo. */
#if !defined(PATH_MAX) && !defined(_MAX_PATH)
-# define PATH_MAX 2048
+# define PATH_MAX 4096
#endif
diff --git a/src/lib/kStuff/include/k/kDefs.h b/src/lib/kStuff/include/k/kDefs.h
index 11e67b8..01e210b 100644
--- a/src/lib/kStuff/include/k/kDefs.h
+++ b/src/lib/kStuff/include/k/kDefs.h
@@ -1,4 +1,4 @@
-/* $Id: kDefs.h 104 2017-10-20 17:19:04Z bird $ */
+/* $Id: kDefs.h 105 2017-11-21 23:55:40Z bird $ */
/** @file
* kTypes - Defines and Macros.
*/
@@ -52,22 +52,24 @@
#define K_OS_GNU_KFBSD 5
/** GNU/kNetBSD or GNU/NetBSD or whatever the decide to call it. */
#define K_OS_GNU_KNBSD 6
+/** Haiku. */
+#define K_OS_HAIKU 7
/** Linux. */
-#define K_OS_LINUX 7
+#define K_OS_LINUX 8
/** NetBSD. */
-#define K_OS_NETBSD 8
+#define K_OS_NETBSD 9
/** NT (native). */
-#define K_OS_NT 9
+#define K_OS_NT 10
/** OpenBSD*/
-#define K_OS_OPENBSD 10
+#define K_OS_OPENBSD 11
/** OS/2 */
-#define K_OS_OS2 11
+#define K_OS_OS2 12
/** Solaris */
-#define K_OS_SOLARIS 12
+#define K_OS_SOLARIS 13
/** Windows. */
-#define K_OS_WINDOWS 13
+#define K_OS_WINDOWS 14
/** The max K_OS_* value (exclusive). */
-#define K_OS_MAX 14
+#define K_OS_MAX 15
/** @} */
/** @def K_OS
@@ -106,6 +108,8 @@
# define K_OS K_OS_SOLARIS
# elif defined(_WIN32) || defined(_WIN64)
# define K_OS K_OS_WINDOWS
+# elif defined(__haiku__) || defined(__HAIKU__)
+# define K_OS K_OS_HAIKU
# else
# error "Port Me"
# endif
diff --git a/src/lib/nt/ntunlink.c b/src/lib/nt/ntunlink.c
index fc0d82e..257e919 100644
--- a/src/lib/nt/ntunlink.c
+++ b/src/lib/nt/ntunlink.c
@@ -1,4 +1,4 @@
-/* $Id: ntunlink.c 3060 2017-09-21 15:11:07Z bird $ */
+/* $Id: ntunlink.c 3126 2017-11-16 16:05:25Z bird $ */
/** @file
* MSC + NT unlink and variations.
*/
@@ -127,7 +127,7 @@ static int birdUnlinkInternal(HANDLE hRoot, const char *pszFile, const wchar_t *
{
rcNt = birdOpenFileUniStr(hRoot,
&NtPath,
- DELETE,
+ DELETE | SYNCHRONIZE,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
FILE_OPEN,
diff --git a/src/lib/testcase/dos-text.txt b/src/lib/testcase/dos-text.txt
new file mode 100644
index 0000000..a685cbd
--- /dev/null
+++ b/src/lib/testcase/dos-text.txt
@@ -0,0 +1,35 @@
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aenean commodo ligula eget dolor. Aenean massa. Cum sociis
+natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec
+quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat
+massa quis enim. Donec pede justo, fringilla vel, aliquet nec,
+vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet
+a,
+venenatis
+vitae, justo. Nullam dictum
+felis eu pede mollis pretium. Integer tincidunt. Cras dapibus.
+Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo
+ligula, porttitor eu, consequat vitae, eleifend ac, enim.
+
+Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra
+
+
+nulla ut metus varius
+ laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue.
+
+
+ Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus
+ eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum.
+Nam quam nunc, blandit vel,
+ luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante
+ tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis
+ ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla
+
+
+
+
+mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales,
+augue
+velit
+cursus
+nunc,
diff --git a/src/lib/testcase/dos2unix-test.cmd b/src/lib/testcase/dos2unix-test.cmd
new file mode 100644
index 0000000..a491e3f
--- /dev/null
+++ b/src/lib/testcase/dos2unix-test.cmd
@@ -0,0 +1,46 @@
+ at setlocal
+
+ at set INSPROG="E:\kBuild\svn\trunk\out\win.amd64\debug\stage\kBuild\bin\win.amd64\kmk_install.exe"
+ at set TMPFILE="e:\tmp\tmp.txt"
+ at set CMPPROG="E:\kBuild\svn\trunk\kBuild\bin\win.amd64\kmk_cmp.exe"
+ at set RMPROG="E:\kBuild\svn\trunk\kBuild\bin\win.amd64\kmk_rm.exe"
+
+@%RMPROG% -f -- %TMPFILE%
+
+ at echo ... dos2unix ...
+%INSPROG% --dos2unix dos-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% unix-text.txt
+ at if not errorlevel 0 goto end
+
+%INSPROG% --dos2unix unix-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% unix-text.txt
+ at if not errorlevel 0 goto end
+
+%INSPROG% --dos2unix mixed-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% unix-text.txt
+ at if not errorlevel 0 goto end
+
+ at echo ... unix2dos ...
+%INSPROG% --unix2dos unix-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% dos-text.txt
+ at if not errorlevel 0 goto end
+
+%INSPROG% --unix2dos dos-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% dos-text.txt
+ at if not errorlevel 0 goto end
+
+%INSPROG% --unix2dos mixed-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% dos-text.txt
+ at if not errorlevel 0 goto end
+
+
+@%RMPROG% -f -- %TMPFILE%
+:end
+ at endlocal
+
diff --git a/src/lib/testcase/mixed-text.txt b/src/lib/testcase/mixed-text.txt
new file mode 100644
index 0000000..adec2a8
--- /dev/null
+++ b/src/lib/testcase/mixed-text.txt
@@ -0,0 +1,35 @@
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aenean commodo ligula eget dolor. Aenean massa. Cum sociis
+natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec
+quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat
+massa quis enim. Donec pede justo, fringilla vel, aliquet nec,
+vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet
+a,
+venenatis
+vitae, justo. Nullam dictum
+felis eu pede mollis pretium. Integer tincidunt. Cras dapibus.
+Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo
+ligula, porttitor eu, consequat vitae, eleifend ac, enim.
+
+Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra
+
+
+nulla ut metus varius
+ laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue.
+
+
+ Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus
+ eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum.
+Nam quam nunc, blandit vel,
+ luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante
+ tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis
+ ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla
+
+
+
+
+mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales,
+augue
+velit
+cursus
+nunc,
diff --git a/src/lib/testcase/unix-text.txt b/src/lib/testcase/unix-text.txt
new file mode 100644
index 0000000..5d3ccd5
--- /dev/null
+++ b/src/lib/testcase/unix-text.txt
@@ -0,0 +1,35 @@
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aenean commodo ligula eget dolor. Aenean massa. Cum sociis
+natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec
+quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat
+massa quis enim. Donec pede justo, fringilla vel, aliquet nec,
+vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet
+a,
+venenatis
+vitae, justo. Nullam dictum
+felis eu pede mollis pretium. Integer tincidunt. Cras dapibus.
+Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo
+ligula, porttitor eu, consequat vitae, eleifend ac, enim.
+
+Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra
+
+
+nulla ut metus varius
+ laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue.
+
+
+ Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus
+ eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum.
+Nam quam nunc, blandit vel,
+ luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante
+ tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis
+ ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla
+
+
+
+
+mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales,
+augue
+velit
+cursus
+nunc,
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-virtualbox/kbuild.git
More information about the Pkg-virtualbox-commits
mailing list