Index: /trunk/kBuild/tools/ALP.kmk
===================================================================
--- /trunk/kBuild/tools/ALP.kmk	(revision 666)
+++ /trunk/kBuild/tools/ALP.kmk	(revision 667)
@@ -4,5 +4,5 @@
 # kBuild Tool Config - ALP or later.
 #
-# Copyright (c) 2005 knut st. osmundsen <bird-srcspam@anduin.net>
+# Copyright (c) 2005-2006 knut st. osmundsen <bird-srcspam@anduin.net>
 #
 #
@@ -25,19 +25,21 @@
 #
 
+TOOL_ALP := The IBM Assembly Language Processor
 
-TOOL_ALP                     := IBM Assembly Language Processor
-#ifndef PATH_TOOL_ALP
-#PATH_TOOL_ALP                := $(sort $(wildcard $(PATH_DEV_BLD)/alp/v*.*))
-#ifneq ($(PATH_TOOL_ALP),)
-#PATH_TOOL_ALP                := $(call lastword,$(PATH_TOOL_ALP))
-#endif
-#endif
+# Tool Specific Properties
+ifndef PATH_TOOL_ALP
+ PATH_TOOL_ALP := $(sort $(wildcard $(PATH_DEVTOOLS_BLD)/alp/v*.*))
+ ifneq ($(PATH_TOOL_ALP),)
+  PATH_TOOL_ALP := $(call lastword,$(PATH_TOOL_ALP))
+ endif
+endif
+ifneq ($(PATH_TOOL_ALP),)
+ TOOL_ALP_AS ?= $(PATH_TOOL_ALP)/alp$(HOSTSUFF_EXE)
+else
+ TOOL_ALP_AS ?= alp$(HOSTSUFF_EXE)
+endif
 
-ifneq ($(PATH_TOOL_ALP),)
-TOOL_ALP_AS                  ?= $(PATH_TOOL_ALP)/alp$(HOSTSUFF_EXE)
-else
-TOOL_ALP_AS                  ?= alp$(HOSTSUFF_EXE)
-endif
-TOOL_ALP_ASFLAGS             ?= -Mb
+# General Properties used by kBuild
+TOOL_ALP_ASFLAGS ?= -Mb
 
 
Index: /trunk/kBuild/tools/GCC.kmk
===================================================================
--- /trunk/kBuild/tools/GCC.kmk	(revision 666)
+++ /trunk/kBuild/tools/GCC.kmk	(revision 667)
@@ -2,5 +2,5 @@
 ## @file
 #
-# kBuild Tool Config - Generic GCC.
+# kBuild Tool Config - Generic GCC Using The System GCC.
 #
 # Copyright (c) 2004-2005 knut st. osmundsen <bird-srcspam@anduin.net>
@@ -25,46 +25,48 @@
 #
 
-
-TOOL_GCC                    := Generic GCC
-
-TOOL_GCC_CC                 ?= gcc$(HOSTSUFF_EXE)
-TOOL_GCC_COBJSUFF           ?= .o
-TOOL_GCC_CFLAGS             ?= 
-TOOL_GCC_CFLAGS.debug       ?= -g
-TOOL_GCC_CFLAGS.profile     ?= -g -O2 #-pg
-TOOL_GCC_CFLAGS.release     ?= -O2
-TOOL_GCC_CINCS              ?=
-TOOL_GCC_CDEFS              ?=
-
-TOOL_GCC_CXX                ?= g++$(HOSTSUFF_EXE)
-TOOL_GCC_CXXOBJSUFF         ?= .o
-TOOL_GCC_CXXOBJSUFF         ?= .o
-TOOL_GCC_CXXFLAGS           ?= 
-TOOL_GCC_CXXFLAGS.debug     ?= -g -O0
-TOOL_GCC_CXXFLAGS.profile   ?= -g -O2 #-pg
-TOOL_GCC_CXXFLAGS.release   ?= -O2
-TOOL_GCC_CXXINCS            ?=
-TOOL_GCC_CXXDEFS            ?=
-
-TOOL_GCC_AS                 ?= gcc$(HOSTSUFF_EXE)
-TOOL_GCC_ASFLAGS            ?= -x assembler-with-cpp
-TOOL_GCC_ASFLAGS.debug      ?= -g
-TOOL_GCC_ASFLAGS.profile    ?= -g
-TOOL_GCC_ASOBJSUFF          ?= .o
-
-TOOL_GCC_AR                 ?= ar$(HOSTSUFF_EXE)
-TOOL_GCC_ARFLAGS            ?= cr
-TOOL_GCC_ARLIBSUFF          ?= .a
-
-TOOL_GCC_LD                 ?= g++$(HOSTSUFF_EXE)
-TOOL_GCC_LDFLAGS            ?=
-TOOL_GCC_LDFLAGS.debug      ?= -g
-TOOL_GCC_LDFLAGS.profile    ?= -g
-TOOL_GCC_LDFLAGS.dll.os2    ?= -Zdll
+TOOL_GCC := Generic GCC Using The System GCC.
+
+# Tool Specific Properties
+TOOL_GCC_CC  ?= gcc$(HOSTSUFF_EXE)
+TOOL_GCC_CXX ?= g++$(HOSTSUFF_EXE)
+TOOL_GCC_AS  ?= gcc$(HOSTSUFF_EXE)
+TOOL_GCC_AR  ?= ar$(HOSTSUFF_EXE)
+TOOL_GCC_LD  ?= g++$(HOSTSUFF_EXE)
+TOOL_GCC_LDFLAGS.dll.os2 ?= -Zdll
 ifndef TOOL_GCC_LDFLAGS.$(BUILD_TARGET)
-TOOL_GCC_LDFLAGS.dll        ?= -shared
+TOOL_GCC_LDFLAGS.dll ?= -shared
 else
-TOOL_GCC_LDFLAGS.dll        ?= $(TOOL_GCC_LDFLAGS.$(BUILD_TARGET))
+TOOL_GCC_LDFLAGS.dll ?= $(TOOL_GCC_LDFLAGS.$(BUILD_TARGET))
 endif
+
+# General Properties used by kBuild
+TOOL_GCC_COBJSUFF         ?= .o
+TOOL_GCC_CFLAGS           ?= 
+TOOL_GCC_CFLAGS.debug     ?= -g
+TOOL_GCC_CFLAGS.profile   ?= -g -O2 #-pg
+TOOL_GCC_CFLAGS.release   ?= -O2
+TOOL_GCC_CINCS            ?=
+TOOL_GCC_CDEFS            ?=
+
+TOOL_GCC_CXXOBJSUFF       ?= .o
+TOOL_GCC_CXXOBJSUFF       ?= .o
+TOOL_GCC_CXXFLAGS         ?= 
+TOOL_GCC_CXXFLAGS.debug   ?= -g -O0
+TOOL_GCC_CXXFLAGS.profile ?= -g -O2 #-pg
+TOOL_GCC_CXXFLAGS.release ?= -O2
+TOOL_GCC_CXXINCS          ?=
+TOOL_GCC_CXXDEFS          ?=
+
+TOOL_GCC_ASFLAGS          ?= -x assembler-with-cpp
+TOOL_GCC_ASFLAGS.debug    ?= -g
+TOOL_GCC_ASFLAGS.profile  ?= -g
+TOOL_GCC_ASOBJSUFF        ?= .o
+
+TOOL_GCC_ARFLAGS          ?= cr
+TOOL_GCC_ARLIBSUFF        ?= .a
+
+TOOL_GCC_LDFLAGS          ?=
+TOOL_GCC_LDFLAGS.debug    ?= -g
+TOOL_GCC_LDFLAGS.profile  ?= -g
 
 
Index: /trunk/kBuild/tools/GCC3.kmk
===================================================================
--- /trunk/kBuild/tools/GCC3.kmk	(revision 666)
+++ /trunk/kBuild/tools/GCC3.kmk	(revision 667)
@@ -2,5 +2,5 @@
 ## @file
 #
-# kBuild Tool Config - Generic GCC.
+# kBuild Tool Config - Generic GCC v3.2.x or later Using The System GCC.
 #
 # Copyright (c) 2004-2006 knut st. osmundsen <bird-srcspam@anduin.net>
@@ -25,59 +25,31 @@
 #
 
-TOOL_GCC3                    := Generic GCC v3
-
-TOOL_GCC3_CC                 ?= gcc$(HOSTSUFF_EXE)
-TOOL_GCC3_COBJSUFF           ?= .o
-TOOL_GCC3_CFLAGS             ?= 
-TOOL_GCC3_CFLAGS.debug       ?= -g
-TOOL_GCC3_CFLAGS.profile     ?= -g -O2 #-pg
-TOOL_GCC3_CFLAGS.release     ?= -O2
-TOOL_GCC3_CINCS              ?=
-TOOL_GCC3_CDEFS              ?=
-
-TOOL_GCC3_CXX                ?= g++$(HOSTSUFF_EXE)
-TOOL_GCC3_CXXOBJSUFF         ?= .o
-TOOL_GCC3_CXXOBJSUFF         ?= .o
-TOOL_GCC3_CXXFLAGS           ?= 
-TOOL_GCC3_CXXFLAGS.debug     ?= -g
-TOOL_GCC3_CXXFLAGS.profile   ?= -g -O2 #-pg
-TOOL_GCC3_CXXFLAGS.release   ?= -O2
-TOOL_GCC3_CXXINCS            ?=
-TOOL_GCC3_CXXDEFS            ?=
-
-TOOL_GCC3_AS                 ?= gcc$(HOSTSUFF_EXE)
-TOOL_GCC3_ASFLAGS            ?= -x assembler-with-cpp
-TOOL_GCC3_ASFLAGS.debug      ?= -g
-TOOL_GCC3_ASFLAGS.profile    ?= -g
-TOOL_GCC3_ASOBJSUFF          ?= .o
-
-TOOL_GCC3_AR                 ?= ar$(HOSTSUFF_EXE)
-TOOL_GCC3_ARFLAGS            ?= cr
-TOOL_GCC3_ARLIBSUFF          ?= .a
-
+TOOL_GCC3 := Generic GCC v3.2.x or later Using The System GCC.
+
+# Tool Specific Properties
+TOOL_GCC3_CC  ?= gcc$(HOSTSUFF_EXE)
+TOOL_GCC3_CXX ?= g++$(HOSTSUFF_EXE)
+TOOL_GCC3_AS  ?= gcc$(HOSTSUFF_EXE)
+TOOL_GCC3_AR  ?= ar$(HOSTSUFF_EXE)
 ifeq ($(BUILD_TARGET),os2)
-TOOL_GCC3_AR_IMP             ?= emximp$(HOSTSTUFF_EXE)
+TOOL_GCC3_AR_IMP ?= emximp$(HOSTSTUFF_EXE)
 else
-TOOL_GCC3_AR_IMP             ?= $(ECHO) not supported!
-endif
-
-TOOL_GCC3_LD                 ?= g++$(HOSTSUFF_EXE)
-TOOL_GCC3_LD_SYSMOD          ?= ld$(HOSTSUFF_EXE)
-TOOL_GCC3_LDFLAGS            ?=
-TOOL_GCC3_LDFLAGS.debug      ?= -g
-TOOL_GCC3_LDFLAGS.profile    ?= -g
+TOOL_GCC3_AR_IMP ?= $(ECHO) not supported!
+endif
+TOOL_GCC3_LD ?= g++$(HOSTSUFF_EXE)
+TOOL_GCC3_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)
 ifndef TOOL_GCC3_LDFLAGS.$(BUILD_TARGET)
-TOOL_GCC3_LDFLAGS.dll        ?= -shared
+TOOL_GCC3_LDFLAGS.dll ?= -shared
 else
-TOOL_GCC3_LDFLAGS.dll        ?= $(TOOL_GCC3_LDFLAGS.$(BUILD_TARGET))
-endif
-TOOL_GCC3_LDFLAGS.sysmod     ?= -r
-TOOL_GCC3_LD_SONAME          ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
+TOOL_GCC3_LDFLAGS.dll ?= $(TOOL_GCC3_LDFLAGS.$(BUILD_TARGET))
+endif
+TOOL_GCC3_LDFLAGS.sysmod ?= -r
+TOOL_GCC3_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
 ifeq ($(BUILD_TARGET),os2)
-TOOL_GCC3_LD_MAP             ?= -Zmap=$(1)
-TOOL_GCC3_LD_SYSMOD_MAP      ?= -Zmap=$(1)
+TOOL_GCC3_LD_MAP ?= -Zmap=$(1)
+TOOL_GCC3_LD_SYSMOD_MAP ?= -Zmap=$(1)
 else
-TOOL_GCC3_LD_MAP             ?= -Wl,-Map -Wl,$(1) -Wl,--cref
-TOOL_GCC3_LD_SYSMOD_MAP      ?= -Map $(1) --cref
+TOOL_GCC3_LD_MAP ?= -Wl,-Map -Wl,$(1) -Wl,--cref
+TOOL_GCC3_LD_SYSMOD_MAP ?= -Map $(1) --cref
 endif
 ifdef SLKRUNS
@@ -85,4 +57,34 @@
 TOOL_GCC3_CXX += -fmessage-length=0
 endif
+
+# General Properties used by kBuild
+TOOL_GCC3_COBJSUFF         ?= .o
+TOOL_GCC3_CFLAGS           ?= 
+TOOL_GCC3_CFLAGS.debug     ?= -g
+TOOL_GCC3_CFLAGS.profile   ?= -g -O2 #-pg
+TOOL_GCC3_CFLAGS.release   ?= -O2
+TOOL_GCC3_CINCS            ?=
+TOOL_GCC3_CDEFS            ?=
+
+TOOL_GCC3_CXXOBJSUFF       ?= .o
+TOOL_GCC3_CXXOBJSUFF       ?= .o
+TOOL_GCC3_CXXFLAGS         ?= 
+TOOL_GCC3_CXXFLAGS.debug   ?= -g
+TOOL_GCC3_CXXFLAGS.profile ?= -g -O2 #-pg
+TOOL_GCC3_CXXFLAGS.release ?= -O2
+TOOL_GCC3_CXXINCS          ?=
+TOOL_GCC3_CXXDEFS          ?=
+
+TOOL_GCC3_ASFLAGS          ?= -x assembler-with-cpp
+TOOL_GCC3_ASFLAGS.debug    ?= -g
+TOOL_GCC3_ASFLAGS.profile  ?= -g
+TOOL_GCC3_ASOBJSUFF        ?= .o
+
+TOOL_GCC3_ARFLAGS          ?= cr
+TOOL_GCC3_ARLIBSUFF        ?= .a
+
+TOOL_GCC3_LDFLAGS          ?=
+TOOL_GCC3_LDFLAGS.debug    ?= -g
+TOOL_GCC3_LDFLAGS.profile  ?= -g
 
 
Index: /trunk/kBuild/tools/GCC32.kmk
===================================================================
--- /trunk/kBuild/tools/GCC32.kmk	(revision 666)
+++ /trunk/kBuild/tools/GCC32.kmk	(revision 667)
@@ -2,5 +2,5 @@
 ## @file
 #
-# kBuild Tool Config - 32-bit GCC, elf.
+# kBuild Tool Config - Generic 32-bit GCC v3.2.x or later Using The System GCC.
 #
 # Copyright (c) 2004-2006 knut st. osmundsen <bird-srcspam@anduin.net>
@@ -25,56 +25,30 @@
 #
 
-TOOL_GCC32                    := Generic GCC v3 32-bit
-
-TOOL_GCC32_CC                 ?= gcc32$(HOSTSUFF_EXE)
-TOOL_GCC32_COBJSUFF           ?= .o
-TOOL_GCC32_CFLAGS             ?= 
-TOOL_GCC32_CFLAGS.debug       ?= -g
-TOOL_GCC32_CFLAGS.profile     ?= -g -O2 #-pg
-TOOL_GCC32_CFLAGS.release     ?= -O2
-TOOL_GCC32_CINCS              ?=
-TOOL_GCC32_CDEFS              ?=
-
-TOOL_GCC32_CXX                ?= g++32$(HOSTSUFF_EXE)
-TOOL_GCC32_CXXOBJSUFF         ?= .o
-TOOL_GCC32_CXXOBJSUFF         ?= .o
-TOOL_GCC32_CXXFLAGS           ?= 
-TOOL_GCC32_CXXFLAGS.debug     ?= -g
-TOOL_GCC32_CXXFLAGS.profile   ?= -g -O2 #-pg
-TOOL_GCC32_CXXFLAGS.release   ?= -O2
-TOOL_GCC32_CXXINCS            ?=
-TOOL_GCC32_CXXDEFS            ?=
-
-TOOL_GCC32_AS                 ?= gcc32$(HOSTSUFF_EXE)
-TOOL_GCC32_ASFLAGS            ?= -x assembler-with-cpp
-TOOL_GCC32_ASFLAGS.debug      ?= -g
-TOOL_GCC32_ASFLAGS.profile    ?= -g
-TOOL_GCC32_ASOBJSUFF          ?= .o
-
-TOOL_GCC32_AR                 ?= ar$(HOSTSUFF_EXE)
-TOOL_GCC32_ARFLAGS            ?= cr
-TOOL_GCC32_ARLIBSUFF          ?= .a
-
-TOOL_GCC32_LD                 ?= g++32$(HOSTSUFF_EXE)
-TOOL_GCC32_LD_SYSMOD          ?= ld$(HOSTSUFF_EXE)
-TOOL_GCC32_LDFLAGS            ?=
-TOOL_GCC32_LDFLAGS.debug      ?= -g
-TOOL_GCC32_LDFLAGS.profile    ?= -g
+TOOL_GCC32 := Generic 32-bit GCC v3.2.x or later Using The System GCC. \
+	More or less Linux/ELF specfic.
+
+# Tool Specific Properties
+TOOL_GCC32_CC  ?= gcc32$(HOSTSUFF_EXE)
+TOOL_GCC32_CXX ?= g++32$(HOSTSUFF_EXE)
+TOOL_GCC32_AS  ?= gcc32$(HOSTSUFF_EXE)
+TOOL_GCC32_AR  ?= ar$(HOSTSUFF_EXE)
+TOOL_GCC32_LD  ?= g++32$(HOSTSUFF_EXE)
+TOOL_GCC32_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)
 ifndef TOOL_GCC32_LDFLAGS.$(BUILD_TARGET)
-TOOL_GCC32_LDFLAGS.dll        ?= -shared
+TOOL_GCC32_LDFLAGS.dll ?= -shared
 else
-TOOL_GCC32_LDFLAGS.dll        ?= $(TOOL_GCC32_LDFLAGS.$(BUILD_TARGET))
-endif
-TOOL_GCC32_LDFLAGS.sysmod     ?= -r -m elf_i386
-TOOL_GCC32_LD_SONAME          ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
+TOOL_GCC32_LDFLAGS.dll ?= $(TOOL_GCC32_LDFLAGS.$(BUILD_TARGET))
+endif
+TOOL_GCC32_LDFLAGS.sysmod ?= -r -m elf_i386
+TOOL_GCC32_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
 ifeq ($(BUILD_TARGET),os2)
-TOOL_GCC32_LD_MAP             ?= -Zmap=$(1)
+TOOL_GCC32_LD_MAP ?= -Zmap=$(1)
 else
-TOOL_GCC32_LD_MAP             ?= -Wl,-Map -Wl,$(1) -Wl,--cref
+TOOL_GCC32_LD_MAP ?= -Wl,-Map -Wl,$(1) -Wl,--cref
 endif
 ifeq ($(BUILD_TARGET),os2)
-TOOL_GCC32_LD_SYSMOD_MAP      ?= -Zmap=$(1)
+TOOL_GCC32_LD_SYSMOD_MAP ?= -Zmap=$(1)
 else
-TOOL_GCC32_LD_SYSMOD_MAP      ?= -Map $(1) --cref
+TOOL_GCC32_LD_SYSMOD_MAP ?= -Map $(1) --cref
 endif
 ifdef SLKRUNS
@@ -82,4 +56,34 @@
 TOOL_GCC32_CXX += -fmessage-length=0
 endif
+
+# General Properties used by kBuild
+TOOL_GCC32_COBJSUFF         ?= .o
+TOOL_GCC32_CFLAGS           ?= 
+TOOL_GCC32_CFLAGS.debug     ?= -g
+TOOL_GCC32_CFLAGS.profile   ?= -g -O2 #-pg
+TOOL_GCC32_CFLAGS.release   ?= -O2
+TOOL_GCC32_CINCS            ?=
+TOOL_GCC32_CDEFS            ?=
+
+TOOL_GCC32_CXXOBJSUFF       ?= .o
+TOOL_GCC32_CXXOBJSUFF       ?= .o
+TOOL_GCC32_CXXFLAGS         ?= 
+TOOL_GCC32_CXXFLAGS.debug   ?= -g
+TOOL_GCC32_CXXFLAGS.profile ?= -g -O2 #-pg
+TOOL_GCC32_CXXFLAGS.release ?= -O2
+TOOL_GCC32_CXXINCS          ?=
+TOOL_GCC32_CXXDEFS          ?=
+
+TOOL_GCC32_ASFLAGS          ?= -x assembler-with-cpp
+TOOL_GCC32_ASFLAGS.debug    ?= -g
+TOOL_GCC32_ASFLAGS.profile  ?= -g
+TOOL_GCC32_ASOBJSUFF        ?= .o
+
+TOOL_GCC32_ARFLAGS          ?= cr
+TOOL_GCC32_ARLIBSUFF        ?= .a
+
+TOOL_GCC32_LDFLAGS          ?=
+TOOL_GCC32_LDFLAGS.debug    ?= -g
+TOOL_GCC32_LDFLAGS.profile  ?= -g
 
 
Index: /trunk/kBuild/tools/GCC3OMF.kmk
===================================================================
--- /trunk/kBuild/tools/GCC3OMF.kmk	(revision 666)
+++ /trunk/kBuild/tools/GCC3OMF.kmk	(revision 667)
@@ -2,7 +2,7 @@
 ## @file
 #
-# kBuild Tool Config - OS/2 GCC v3 OMF.
-#
-# Copyright (c) 2004-2005 knut st. osmundsen <bird-srcspam@anduin.net>
+# kBuild Tool Config - GCC v3 targeting OS/2 OMF.
+#
+# Copyright (c) 2004-2006 knut st. osmundsen <bird-srcspam@anduin.net>
 #
 #
@@ -25,49 +25,22 @@
 #
 
-TOOL_GCC3OMF                    := OS/2 GCC v3 OMF
-
-TOOL_GCC3OMF_CC                 ?= gcc$(HOSTSUFF_EXE)
-TOOL_GCC3OMF_COBJSUFF           ?= .o
-TOOL_GCC3OMF_CFLAGS             ?= -Zomf
-TOOL_GCC3OMF_CFLAGS.debug       ?= -g
-TOOL_GCC3OMF_CFLAGS.profile     ?= -g -O2 #-pg
-TOOL_GCC3OMF_CFLAGS.release     ?= -O2
-TOOL_GCC3OMF_CINCS              ?=
-TOOL_GCC3OMF_CDEFS              ?=
-
-TOOL_GCC3OMF_CXX                ?= g++$(HOSTSUFF_EXE)
-TOOL_GCC3OMF_CXXOBJSUFF         ?= .o
-TOOL_GCC3OMF_CXXOBJSUFF         ?= .o
-TOOL_GCC3OMF_CXXFLAGS           ?= -Zomf
-TOOL_GCC3OMF_CXXFLAGS.debug     ?= -g
-TOOL_GCC3OMF_CXXFLAGS.profile   ?= -g -O2 #-pg
-TOOL_GCC3OMF_CXXFLAGS.release   ?= -O2
-TOOL_GCC3OMF_CXXINCS            ?=
-TOOL_GCC3OMF_CXXDEFS            ?=
-
-TOOL_GCC3OMF_AS                 ?= gcc$(HOSTSUFF_EXE)
-TOOL_GCC3OMF_ASFLAGS            ?= -x assembler-with-cpp
-TOOL_GCC3OMF_ASFLAGS.debug      ?= -g
-TOOL_GCC3OMF_ASFLAGS.profile    ?= -g
-TOOL_GCC3OMF_ASOBJSUFF          ?= .obj
-
-TOOL_GCC3OMF_AR                 ?= emxomfar$(HOSTSUFF_EXE)
-TOOL_GCC3OMF_ARFLAGS            ?= cr
-TOOL_GCC3OMF_ARLIBSUFF          ?= .lib
-TOOL_GCC3OMF_AR_IMP             ?= emximp$(HOSTSUFF_EXE)
-
-TOOL_GCC3OMF_LD                 ?= g++$(HOSTSUFF_EXE)
-TOOL_GCC3OMF_LD_SYSMOD          ?= g++$(HOSTSUFF_EXE)
-TOOL_GCC3OMF_LDFLAGS            ?= -Zomf
-TOOL_GCC3OMF_LDFLAGS.debug      ?= -g
-TOOL_GCC3OMF_LDFLAGS.profile    ?= -g
+TOOL_GCC3OMF := GCC v3 targeting OS/2 OMF.
+
+# Tool Specific Properties
+TOOL_GCC3OMF_CC  ?= gcc$(HOSTSUFF_EXE)
+TOOL_GCC3OMF_CXX ?= g++$(HOSTSUFF_EXE)
+TOOL_GCC3OMF_AS  ?= gcc$(HOSTSUFF_EXE)
+TOOL_GCC3OMF_AR  ?= emxomfar$(HOSTSUFF_EXE)
+TOOL_GCC3OMF_AR_IMP ?= emximp$(HOSTSUFF_EXE)
+TOOL_GCC3OMF_LD ?= g++$(HOSTSUFF_EXE)
+TOOL_GCC3OMF_LD_SYSMOD ?= g++$(HOSTSUFF_EXE)
 ifndef TOOL_GCC3OMF_LDFLAGS.$(BUILD_TARGET)
-TOOL_GCC3OMF_LDFLAGS.dll        ?= -shared -Zdll
+TOOL_GCC3OMF_LDFLAGS.dll ?= -shared -Zdll
 else
-TOOL_GCC3OMF_LDFLAGS.dll        ?= $(TOOL_GCC3OMF_LDFLAGS.$(BUILD_TARGET))
+TOOL_GCC3OMF_LDFLAGS.dll ?= $(TOOL_GCC3OMF_LDFLAGS.$(BUILD_TARGET))
 endif
-TOOL_GCC3OMF_LDFLAGS.sysmod     ?= -nostdlib
-TOOL_GCC3OMF_LD_MAP             ?= -Zmap=$(1)
-TOOL_GCC3OMF_LD_SYSMOD_MAP      ?= -Zmap=$(1)
+TOOL_GCC3OMF_LDFLAGS.sysmod ?= -nostdlib
+TOOL_GCC3OMF_LD_MAP ?= -Zmap=$(1)
+TOOL_GCC3OMF_LD_SYSMOD_MAP ?= -Zmap=$(1)
 
 ifdef SLKRUNS
@@ -75,4 +48,34 @@
 TOOL_GCC3OMF_CXX += -fmessage-length=0
 endif
+
+# General Properties used by kBuild
+TOOL_GCC3OMF_COBJSUFF         ?= .o
+TOOL_GCC3OMF_CFLAGS           ?= -Zomf
+TOOL_GCC3OMF_CFLAGS.debug     ?= -g
+TOOL_GCC3OMF_CFLAGS.profile   ?= -g -O2 #-pg
+TOOL_GCC3OMF_CFLAGS.release   ?= -O2
+TOOL_GCC3OMF_CINCS            ?=
+TOOL_GCC3OMF_CDEFS            ?=
+
+TOOL_GCC3OMF_CXXOBJSUFF       ?= .o
+TOOL_GCC3OMF_CXXOBJSUFF       ?= .o
+TOOL_GCC3OMF_CXXFLAGS         ?= -Zomf
+TOOL_GCC3OMF_CXXFLAGS.debug   ?= -g
+TOOL_GCC3OMF_CXXFLAGS.profile ?= -g -O2 #-pg
+TOOL_GCC3OMF_CXXFLAGS.release ?= -O2
+TOOL_GCC3OMF_CXXINCS          ?=
+TOOL_GCC3OMF_CXXDEFS          ?=
+
+TOOL_GCC3OMF_ASFLAGS          ?= -x assembler-with-cpp
+TOOL_GCC3OMF_ASFLAGS.debug    ?= -g
+TOOL_GCC3OMF_ASFLAGS.profile  ?= -g
+TOOL_GCC3OMF_ASOBJSUFF        ?= .obj
+
+TOOL_GCC3OMF_ARFLAGS          ?= cr
+TOOL_GCC3OMF_ARLIBSUFF        ?= .lib
+
+TOOL_GCC3OMF_LDFLAGS          ?= -Zomf
+TOOL_GCC3OMF_LDFLAGS.debug    ?= -g
+TOOL_GCC3OMF_LDFLAGS.profile  ?= -g
 
 
Index: /trunk/kBuild/tools/GCC4MACHO.kmk
===================================================================
--- /trunk/kBuild/tools/GCC4MACHO.kmk	(revision 666)
+++ /trunk/kBuild/tools/GCC4MACHO.kmk	(revision 667)
@@ -2,5 +2,5 @@
 ## @file
 #
-# kBuild Tool Config - Darwin / Mac OS X / Mach-O GCC (v4).
+# kBuild Tool Config - GCC v4 targeting Darwin (Mac OS X) Mach-o.
 #
 # Copyright (c) 2004-2006 knut st. osmundsen <bird-srcspam@anduin.net>
@@ -25,51 +25,22 @@
 #
 
-TOOL_GCC4MACHO                    := Mach-O GCC v4
-
-TOOL_GCC4MACHO_CC                 ?= gcc$(HOSTSUFF_EXE)
-TOOL_GCC4MACHO_COBJSUFF           ?= .o
-TOOL_GCC4MACHO_CFLAGS             ?= 
-TOOL_GCC4MACHO_CFLAGS.debug       ?= -g
-TOOL_GCC4MACHO_CFLAGS.profile     ?= -g -O2 #-pg
-TOOL_GCC4MACHO_CFLAGS.release     ?= -O2 
-TOOL_GCC4MACHO_CINCS              ?=
-TOOL_GCC4MACHO_CDEFS              ?=
-
-TOOL_GCC4MACHO_CXX                ?= g++$(HOSTSUFF_EXE)
-TOOL_GCC4MACHO_CXXOBJSUFF         ?= .o
-TOOL_GCC4MACHO_CXXOBJSUFF         ?= .o
-TOOL_GCC4MACHO_CXXFLAGS           ?= 
-TOOL_GCC4MACHO_CXXFLAGS.debug     ?= -g
-TOOL_GCC4MACHO_CXXFLAGS.profile   ?= -g -O2 #-pg
-TOOL_GCC4MACHO_CXXFLAGS.release   ?= -O2
-TOOL_GCC4MACHO_CXXINCS            ?=
-TOOL_GCC4MACHO_CXXDEFS            ?=
-
-TOOL_GCC4MACHO_AS                 ?= gcc$(HOSTSUFF_EXE)
-TOOL_GCC4MACHO_ASFLAGS            ?= -x assembler-with-cpp
-TOOL_GCC4MACHO_ASFLAGS.debug      ?= -g
-TOOL_GCC4MACHO_ASFLAGS.profile    ?= -g
-TOOL_GCC4MACHO_ASOBJSUFF          ?= .o
-
-TOOL_GCC4MACHO_AR                 ?= ar$(HOSTSUFF_EXE)
-TOOL_GCC4MACHO_ARFLAGS            ?= -c -rs
-TOOL_GCC4MACHO_ARLIBSUFF          ?= .a
-
-TOOL_GCC4MACHO_AR_IMP             ?= $(ECHO) not supported!
-
-TOOL_GCC4MACHO_LD                 ?= g++$(HOSTSUFF_EXE)
-TOOL_GCC4MACHO_LD_SYSMOD          ?= g++$(HOSTSUFF_EXE)
-TOOL_GCC4MACHO_LDFLAGS            ?=
-TOOL_GCC4MACHO_LDFLAGS.debug      ?= -g
-TOOL_GCC4MACHO_LDFLAGS.profile    ?= -g
+TOOL_GCC4MACHO := GCC v4 targeting Darwin (Mac OS X) Mach-o.
+
+# Tool Specific Properties
+TOOL_GCC4MACHO_CC  ?= gcc$(HOSTSUFF_EXE)
+TOOL_GCC4MACHO_CXX ?= g++$(HOSTSUFF_EXE)
+TOOL_GCC4MACHO_AS  ?= gcc$(HOSTSUFF_EXE)
+TOOL_GCC4MACHO_AR_IMP ?= $(ECHO) not supported!
+TOOL_GCC4MACHO_LD ?= g++$(HOSTSUFF_EXE)
+TOOL_GCC4MACHO_LD_SYSMOD ?= g++$(HOSTSUFF_EXE)
 ifndef TOOL_GCC4MACHO_LDFLAGS.$(BUILD_TARGET)
-TOOL_GCC4MACHO_LDFLAGS.dll        ?= -dynamiclib
+TOOL_GCC4MACHO_LDFLAGS.dll ?= -dynamiclib
 else
-TOOL_GCC4MACHO_LDFLAGS.dll        ?= $(TOOL_GCC4MACHO_LDFLAGS.$(BUILD_TARGET))
+TOOL_GCC4MACHO_LDFLAGS.dll ?= $(TOOL_GCC4MACHO_LDFLAGS.$(BUILD_TARGET))
 endif
-TOOL_GCC4MACHO_LDFLAGS.sysmod     ?= -r
-#TOOL_GCC4MACHO_LD_SONAME           = -Wl,-dylib_install_name $(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
-TOOL_GCC4MACHO_LD_MAP             ?=
-TOOL_GCC4MACHO_LD_SYSMOD_MAP      ?=
+TOOL_GCC4MACHO_LDFLAGS.sysmod ?= -r
+#TOOL_GCC4MACHO_LD_SONAME = -Wl,-dylib_install_name $(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
+TOOL_GCC4MACHO_LD_MAP ?=
+TOOL_GCC4MACHO_LD_SYSMOD_MAP ?=
 
 ifdef SLKRUNS
@@ -77,4 +48,35 @@
 TOOL_GCC4MACHO_CXX += -fmessage-length=0
 endif
+
+# General Properties used by kBuild
+TOOL_GCC4MACHO_COBJSUFF         ?= .o
+TOOL_GCC4MACHO_CFLAGS           ?= 
+TOOL_GCC4MACHO_CFLAGS.debug     ?= -g
+TOOL_GCC4MACHO_CFLAGS.profile   ?= -g -O2 #-pg
+TOOL_GCC4MACHO_CFLAGS.release   ?= -O2 
+TOOL_GCC4MACHO_CINCS            ?=
+TOOL_GCC4MACHO_CDEFS            ?=
+
+TOOL_GCC4MACHO_CXXOBJSUFF       ?= .o
+TOOL_GCC4MACHO_CXXOBJSUFF       ?= .o
+TOOL_GCC4MACHO_CXXFLAGS         ?= 
+TOOL_GCC4MACHO_CXXFLAGS.debug   ?= -g
+TOOL_GCC4MACHO_CXXFLAGS.profile ?= -g -O2 #-pg
+TOOL_GCC4MACHO_CXXFLAGS.release ?= -O2
+TOOL_GCC4MACHO_CXXINCS          ?=
+TOOL_GCC4MACHO_CXXDEFS          ?=
+
+TOOL_GCC4MACHO_ASFLAGS          ?= -x assembler-with-cpp
+TOOL_GCC4MACHO_ASFLAGS.debug    ?= -g
+TOOL_GCC4MACHO_ASFLAGS.profile  ?= -g
+TOOL_GCC4MACHO_ASOBJSUFF        ?= .o
+
+TOOL_GCC4MACHO_AR               ?= ar$(HOSTSUFF_EXE)
+TOOL_GCC4MACHO_ARFLAGS          ?= -c -rs
+TOOL_GCC4MACHO_ARLIBSUFF        ?= .a
+
+TOOL_GCC4MACHO_LDFLAGS          ?=
+TOOL_GCC4MACHO_LDFLAGS.debug    ?= -g
+TOOL_GCC4MACHO_LDFLAGS.profile  ?= -g
 
 
Index: /trunk/kBuild/tools/MINGW32.kmk
===================================================================
--- /trunk/kBuild/tools/MINGW32.kmk	(revision 666)
+++ /trunk/kBuild/tools/MINGW32.kmk	(revision 667)
@@ -2,5 +2,5 @@
 ## @file
 #
-# kBuild Tool Config - MINGW32 GCC.
+# kBuild Tool Config - MinGW32 GCC v3.3+.
 #
 # Copyright (c) 2004-2006 knut st. osmundsen <bird-srcspam@anduin.net>
@@ -25,38 +25,62 @@
 #
 
-TOOL_MINGW32                 := MinGW32 GCC v3.3+
-
-# find latest installed version
+TOOL_MINGW32 := MinGW32 GCC v3.3+.
+
+# Tool Specific Properties
 ifndef PATH_TOOL_MINGW32
- PATH_DEV_BLD                ?= $(PATH_DEV)/$(BUILD_PLATFORM_ARCH).$(BUILD_PLATFORM)
- PATH_TOOL_MINGW32           := $(sort $(wildcard $(PATH_DEV_BLD)/mingw32/v*.*))
+ PATH_TOOL_MINGW32 := $(sort $(wildcard $(PATH_DEVTOOLS_BLD)/mingw32/v*.*))
  ifeq ($(PATH_TOOL_MINGW32),)
-  PATH_TOOL_MINGW32          := $(sort $(wildcard $(PATH_DEV)/x86.win32/mingw32/v*.*))
+  PATH_TOOL_MINGW32 := $(sort $(wildcard $(PATH_DEVTOOLS)/x86.win/mingw32/v*.*))
+ endif
+ ifeq ($(PATH_TOOL_MINGW32),)
+  PATH_TOOL_MINGW32 := $(sort $(wildcard $(PATH_DEVTOOLS)/x86.win32/mingw32/v*.*))
  endif
  ifneq ($(PATH_TOOL_MINGW32),)
-  PATH_TOOL_MINGW32          := $(call lastword,$(PATH_TOOL_MINGW32))
- endif
+  PATH_TOOL_MINGW32 := $(call lastword,$(PATH_TOOL_MINGW32))
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_TOOL_MINGW32 := $(PATH_TOOL_MINGW32)
 endif
 
 # figure out if it's native or needs a win32 launcher
-ifneq ($(PATH_TOOL_MINGW32),)
-_TOOL_MINGW32_PREFIX            ?= $(PATH_TOOL_MINGW32)/bin/
+TOOL_MINGW32_HOSTSUFF_EXE ?= $(HOSTSUFF_EXE)
+ifndef TOOL_MINGW32_PREFIX
+ ifneq ($(PATH_TOOL_MINGW32),)
+  TOOL_MINGW32_PREFIX := $(PATH_TOOL_MINGW32)/bin/
+ else
+  TOOL_MINGW32_PREFIX :=
+ endif
+ ifneq ($(BUILD_PLATFORM),win)
+  # we're cross compiling either using an emulator (wine/odin) or a cross compiler.
+  ifneq ($(PATH_TOOL_MINGW32),$(subst /x86.win,,$(PATH_TOOL_MINGW32)))
+   TOOL_MINGW32_PREFIX := $(EXEC_X86_WIN32) $(TOOL_MINGW32_PREFIX)
+   TOOL_MINGW32_HOSTSUFF_EXE := .exe
+  else
+   TOOL_MINGW32_PREFIX := $(TOOL_MINGW32_PREFIX)i386-mingw32msvc-
+   TOOL_MINGW32_HOSTSUFF_EXE :=
+   TOOL_MINGW32_XCOMPILE := 1
+  endif
+ endif
 else
-_TOOL_MINGW32_PREFIX            ?=
+ # Resolve any fancy stuff once and for all.
+ TOOL_MINGW32_PREFIX := 
 endif
-_TOOL_MINGW32_SUFF_EXE          ?= $(HOSTSUFF_EXE)
-ifneq ($(BUILD_PLATFORM),win)
- # we're cross compiling either using wine/odin or a cross compiler.
- ifneq ($(PATH_TOOL_MINGW32),$(subst x86.win32,,$(PATH_TOOL_MINGW32)))
-  _TOOL_MINGW32_PREFIX          := $(EXEC_X86_WIN32) $(_TOOL_MINGW32_PREFIX)
-  _TOOL_MINGW32_SUFF_EXE        ?= .exe
- else
-  _TOOL_MINGW32_PREFIX          := $(_TOOL_MINGW32_PREFIX)i386-mingw32msvc-
-  _TOOL_MINGW32_SUFF_EXE        ?=
-  _TOOL_MINGW32_XCOMPILE        ?= 1
- endif
+
+TOOL_MINGW32_CC  ?= $(TOOL_MINGW32_PREFIX)gcc$(TOOL_MINGW32_HOSTSUFF_EXE)
+TOOL_MINGW32_CXX ?= $(TOOL_MINGW32_PREFIX)g++$(TOOL_MINGW32_HOSTSUFF_EXE)
+TOOL_MINGW32_AS  ?= $(TOOL_MINGW32_PREFIX)gcc$(TOOL_MINGW32_HOSTSUFF_EXE)
+TOOL_MINGW32_AR  ?= $(TOOL_MINGW32_PREFIX)ar$(TOOL_MINGW32_HOSTSUFF_EXE)
+ifndef TOOL_MINGW32_XCOMPILE# The gentoo package doesn't have g++.
+TOOL_MINGW32_LD  ?= $(TOOL_MINGW32_PREFIX)g++$(TOOL_MINGW32_HOSTSUFF_EXE)
+else
+TOOL_MINGW32_LD  ?= $(TOOL_MINGW32_PREFIX)gcc$(TOOL_MINGW32_HOSTSUFF_EXE)
 endif
-
-TOOL_MINGW32_CC                 ?= $(_TOOL_MINGW32_PREFIX)gcc$(_TOOL_MINGW32_SUFF_EXE)
+TOOL_MINGW32_LD_MAP ?= -Wl,-Map -Wl,$(1) -Wl,--cref
+TOOL_MINGW32_LD_SYSMOD_MAP ?= -Map $(1) --cref
+TOOL_MINGW32_DLLWRAP ?= $(TOOL_MINGW32_PREFIX)dllwrap$(TOOL_MINGW32_HOSTSUFF_EXE)
+TOOL_MINGW32_DLLTOOL ?= $(TOOL_MINGW32_PREFIX)dlltool$(TOOL_MINGW32_HOSTSUFF_EXE)
+
+# General Properties used by kBuild
 TOOL_MINGW32_COBJSUFF           ?= .o
 TOOL_MINGW32_CFLAGS             ?= -g
@@ -67,5 +91,4 @@
 TOOL_MINGW32_CDEFS              ?=
 
-TOOL_MINGW32_CXX                ?= $(_TOOL_MINGW32_PREFIX)g++$(_TOOL_MINGW32_SUFF_EXE)
 TOOL_MINGW32_CXXOBJSUFF         ?= .o
 TOOL_MINGW32_CXXOBJSUFF         ?= .o
@@ -77,26 +100,14 @@
 TOOL_MINGW32_CXXDEFS            ?=
 
-TOOL_MINGW32_AS                 ?= $(_TOOL_MINGW32_PREFIX)gcc$(_TOOL_MINGW32_SUFF_EXE)
 TOOL_MINGW32_ASFLAGS            ?= -g -x assembler-with-cpp
 TOOL_MINGW32_ASOBJSUFF          ?= .o
 
-TOOL_MINGW32_AR                 ?= $(_TOOL_MINGW32_PREFIX)ar$(_TOOL_MINGW32_SUFF_EXE)
 TOOL_MINGW32_ARFLAGS            ?= cr
 TOOL_MINGW32_ARLIBSUFF          ?= .a
 
 # The linux cross compiler ebuild haven't got g++, this is a hack for that.
-ifndef _TOOL_MINGW32_XCOMPILE
-TOOL_MINGW32_LD                 ?= $(_TOOL_MINGW32_PREFIX)g++$(_TOOL_MINGW32_SUFF_EXE)
-else
-TOOL_MINGW32_LD                 ?= $(_TOOL_MINGW32_PREFIX)gcc$(_TOOL_MINGW32_SUFF_EXE)
-endif
 TOOL_MINGW32_LDFLAGS            ?=
 TOOL_MINGW32_LDFLAGS.debug      ?= -g
 TOOL_MINGW32_LDFLAGS.release    ?= -s
-TOOL_MINGW32_LD_MAP             ?= -Wl,-Map -Wl,$(1) -Wl,--cref
-TOOL_MINGW32_LD_SYSMOD_MAP      ?= -Map $(1) --cref
-
-TOOL_MINGW32_DLLWRAP            ?= $(_TOOL_MINGW32_PREFIX)dllwrap$(_TOOL_MINGW32_SUFF_EXE)
-TOOL_MINGW32_DLLTOOL            ?= $(_TOOL_MINGW32_PREFIX)dlltool$(_TOOL_MINGW32_SUFF_EXE)
 
 
Index: /trunk/kBuild/tools/NASM.kmk
===================================================================
--- /trunk/kBuild/tools/NASM.kmk	(revision 666)
+++ /trunk/kBuild/tools/NASM.kmk	(revision 667)
@@ -2,7 +2,7 @@
 ## @file
 #
-# kBuild Tool Config - NASM	0.98 or later.
+# kBuild Tool Config - Netwide Assembler v0.98+.
 #
-# Copyright (c) 2004-2005 knut st. osmundsen <bird-srcspam@anduin.net>
+# Copyright (c) 2004-2006 knut st. osmundsen <bird-srcspam@anduin.net>
 #
 #
@@ -25,20 +25,25 @@
 #
 
+TOOL_NASM := Netwide Assembler v0.98+
 
-TOOL_NASM                     := Netwide Assembler 0.98+
+# Tool Specific Properties
 ifndef PATH_TOOL_NASM
- PATH_DEV_BLD                 ?= $(PATH_DEV)/$(BUILD_PLATFORM_ARCH).$(BUILD_PLATFORM)
- PATH_TOOL_NASM               := $(sort $(wildcard $(PATH_DEV)/$(BUILD_PLATFORM_ARCH).$(BUILD_PLATFORM)/nasm/v*.*))
+ PATH_TOOL_NASM := $(sort $(wildcard $(PATH_DEVTOOLS_BLD)/nasm/v*.*))
  ifneq ($(PATH_TOOL_NASM),)
-  PATH_TOOL_NASM              := $(call lastword,$(PATH_TOOL_NASM))
+  PATH_TOOL_NASM := $(call lastword,$(PATH_TOOL_NASM))
  endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_TOOL_NASM := $(PATH_TOOL_NASM)
 endif
 
 ifneq ($(PATH_TOOL_NASM),)
- TOOL_NASM_AS                 ?= $(PATH_TOOL_NASM)/nasm$(HOSTSUFF_EXE)
+ TOOL_NASM_AS ?= $(PATH_TOOL_NASM)/nasm$(HOSTSUFF_EXE)
 else
- TOOL_NASM_AS                 ?= nasm$(HOSTSUFF_EXE)
+ TOOL_NASM_AS ?= nasm$(HOSTSUFF_EXE)
 endif
-TOOL_NASM_ASFLAGS             ?=
+
+# General Properties used by kBuild
+TOOL_NASM_ASFLAGS ?=
 
 
Index: /trunk/kBuild/tools/TAR.kmk
===================================================================
--- /trunk/kBuild/tools/TAR.kmk	(revision 666)
+++ /trunk/kBuild/tools/TAR.kmk	(revision 667)
@@ -27,5 +27,15 @@
 TOOL_TAR := tar unpacker.
 
-TOOL_TAR_UNPACK ?= tar$(HOSTSUFF_EXE)
+# Tool Specific Properties
+ifndef TOOL_TAR_UNPACK
+ TOOL_TAR_UNPACK := $(wildcard $(PATH_DEVTOOLS_BLD)/tar$(HOSTSUFF_EXE))
+ ifeq ($(TOOL_TAR_UNPACK),)
+  TOOL_TAR_UNPACK := tar$(HOSTSUFF_EXE)
+ endif
+else
+ TOOL_TAR_UNPACK := $(TOOL_TAR_UNPACK)
+endif
+
+# General Properties used by kBuild
 TOOL_TAR_UNPACKFLAGS ?=
 
Index: /trunk/kBuild/tools/TARGZ.kmk
===================================================================
--- /trunk/kBuild/tools/TARGZ.kmk	(revision 666)
+++ /trunk/kBuild/tools/TARGZ.kmk	(revision 667)
@@ -27,5 +27,15 @@
 TOOL_TARGZ := tar.gz unpacker.
 
-TOOL_TARGZ_UNPACK ?= tar$(HOSTSUFF_EXE)
+# Tool Specific Properties
+ifndef TOOL_TARGZ_UNPACK
+ TOOL_TARGZ_UNPACK := $(wildcard $(PATH_DEVTOOLS_BLD)/tar$(HOSTSUFF_EXE))
+ ifeq ($(TOOL_TARGZ_UNPACK),)
+  TOOL_TARGZ_UNPACK := tar$(HOSTSUFF_EXE)
+ endif
+else
+ TOOL_TARGZ_UNPACK := $(TOOL_TARGZ_UNPACK)
+endif
+
+# General Properties used by kBuild
 TOOL_TARGZ_UNPACKFLAGS ?= -z
 
Index: /trunk/kBuild/tools/VCC70.kmk
===================================================================
--- /trunk/kBuild/tools/VCC70.kmk	(revision 666)
+++ /trunk/kBuild/tools/VCC70.kmk	(revision 667)
@@ -2,5 +2,5 @@
 ## @file
 #
-# kBuild Tool Config - Visual C++ 7.0 (aka Visual .NET)
+# kBuild Tool Config - Visual C++ 7.0 (aka Visual Studio .NET), targeting x86.
 #
 # Copyright (c) 2004-2006 knut st. osmundsen <bird-srcspam@anduin.net>
@@ -24,51 +24,36 @@
 #
 #
-
-TOOL_VCC70                    := Visual C++ 7.0
+	   
+TOOL_VCC70 := Visual C++ 7.0 (aka Visual Studio .NET), targeting x86.
+
+# Tool Specific Properties
 ifndef PATH_TOOL_VCC70
- PATH_TOOL_VCC70              := $(wildcard $(PATH_DEV)/x86.win32/vcc/v7)
+ PATH_TOOL_VCC70 := $(wildcard $(PATH_DEVTOOLS)/x86.win/vcc/v7)
  ifeq ($(PATH_TOOL_VCC70),)
-  PATH_TOOL_VCC70             := $(PATH_DEV)/x86.win32/vcc70
+  PATH_TOOL_VCC70 := $(wildcard $(PATH_DEVTOOLS)/x86.win32/vcc/v7)
  endif
-endif
-PATH_TOOL_VCC70_LIB           ?= $(PATH_TOOL_VCC70)/lib
-PATH_TOOL_VCC70_INC           ?= $(PATH_TOOL_VCC70)/include
-PATH_TOOL_VCC70_ATLMFC        ?= $(PATH_TOOL_VCC70)/atlmfc
-PATH_TOOL_VCC70_ATLMFC_INC    ?= $(PATH_TOOL_VCC70_ATLMFC)/include
-PATH_TOOL_VCC70_ATLMFC_LIB    ?= $(PATH_TOOL_VCC70_ATLMFC)/lib
-
-TOOL_VCC70_CC                 ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70)/bin/cl.exe
-TOOL_VCC70_COBJSUFF           ?= .obj
-TOOL_VCC70_CFLAGS             ?= -TC -c -nologo
-TOOL_VCC70_CFLAGS.debug       ?= -Od -Zi
-TOOL_VCC70_CFLAGS.release     ?= -O2
-TOOL_VCC70_CFLAGS.profile     ?= -O2
-TOOL_VCC70_CINCS              ?= $(PATH_TOOL_VCC70_INC)
-TOOL_VCC70_CDEFS              ?=
-
-TOOL_VCC70_CXX                ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70)/bin/cl.exe
-TOOL_VCC70_CXXOBJSUFF         ?= .obj
-TOOL_VCC70_CXXFLAGS           ?= -TP -c -nologo
-TOOL_VCC70_CXXFLAGS.debug     ?= -Od -Zi
-TOOL_VCC70_CXXFLAGS.release   ?= -O2
-TOOL_VCC70_CXXFLAGS.profile   ?= -O2
-TOOL_VCC70_CXXINCS            ?= $(PATH_TOOL_VCC70_INC) $(PATH_TOOL_VCC70_ATLMFC_INC)
-TOOL_VCC70_CXXDEFS            ?=
-
-TOOL_VCC70_AS                 ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70)/bin/ml.exe
-TOOL_VCC70_ASOBJSUFF          ?= .obj
-
-TOOL_VCC70_RC                 ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70)/bin/rc.exe
-TOOL_VCC70_RCOBJSUFF          ?= .res
-TOOL_VCC70_RCINCS             ?= $(PATH_TOOL_VCC70_INC) $(PATH_TOOL_VCC70_ATLMFC_INC)
-
-TOOL_VCC70_AR                 ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70)/bin/lib.exe
-TOOL_VCC70_ARFLAGS            ?= -nologo
-TOOL_VCC70_ARLIBSUFF          ?= .lib
-
-TOOL_VCC70_LD                 ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70)/bin/link.exe
-TOOL_VCC70_LDFLAGS            ?= -nologo
-TOOL_VCC70_LDFLAGS.debug      ?= -debug
-TOOL_VCC70_LDFLAGS.release    ?=
+ ifeq ($(PATH_TOOL_VCC70),)
+  PATH_TOOL_VCC70 := $(PATH_DEVTOOLS)/x86.win32/vcc70
+ endif
+ ifneq ($(PATH_TOOL_VCC70),)
+  # done
+ else
+  $(warning kBuild: PATH_TOOL_VCC70 cannot be determined!)
+  PATH_TOOL_VCC70 := $(PATH_DEVTOOLS)/x86.win/vcc/v7
+ endif
+endif
+PATH_TOOL_VCC70_BIN ?= $(PATH_TOOL_VCC70)/bin
+PATH_TOOL_VCC70_LIB ?= $(PATH_TOOL_VCC70)/lib
+PATH_TOOL_VCC70_INC ?= $(PATH_TOOL_VCC70)/include
+PATH_TOOL_VCC70_ATLMFC ?= $(PATH_TOOL_VCC70)/atlmfc
+PATH_TOOL_VCC70_ATLMFC_INC ?= $(PATH_TOOL_VCC70_ATLMFC)/include
+PATH_TOOL_VCC70_ATLMFC_LIB ?= $(PATH_TOOL_VCC70_ATLMFC)/lib
+TOOL_VCC70_CC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70_BIN)/cl.exe
+TOOL_VCC70_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70_BIN)/cl.exe
+TOOL_VCC70_AS  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70_BIN)/ml.exe
+TOOL_VCC70_RC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70_BIN)/rc.exe
+TOOL_VCC70_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70_BIN)/lib.exe
+TOOL_VCC70_LD  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC70_BIN)/link.exe
+VCC70_NEW_DEPS = 1 ##< Enables fast DEP_IDB based dependencies.
 
 ## Constructs the correct .pdb name (the name is lowercased).
@@ -76,13 +61,37 @@
 # @param    $(2)        The extension.
 ifeq ($(filter tolower,$(KMK_FEATURES)),tolower)
-TOOL_VCC70_PDB                = $(dir $(1))$(tolower $(notdir $(1))).$(2)
+TOOL_VCC70_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
 else # this fallback is incorrect and won't work on a case sensitive FS.
-TOOL_VCC70_PDB                = $(1).$(2)
-endif
-
-#ifeq ($(BUILD_PLATFORM),win32)
-VCC70_NEW_DEPS = 1
-#endif
-
+TOOL_VCC70_PDB = $(1).$(2)
+endif
+
+# General Properties used by kBuild
+TOOL_VCC70_COBJSUFF         ?= .obj
+TOOL_VCC70_CFLAGS           ?= -TC -c -nologo
+TOOL_VCC70_CFLAGS.debug     ?= -Od -Zi
+TOOL_VCC70_CFLAGS.release   ?= -O2
+TOOL_VCC70_CFLAGS.profile   ?= -O2
+TOOL_VCC70_CINCS            ?= $(PATH_TOOL_VCC70_INC)
+TOOL_VCC70_CDEFS            ?=
+
+TOOL_VCC70_CXXOBJSUFF       ?= .obj
+TOOL_VCC70_CXXFLAGS         ?= -TP -c -nologo
+TOOL_VCC70_CXXFLAGS.debug   ?= -Od -Zi
+TOOL_VCC70_CXXFLAGS.release ?= -O2
+TOOL_VCC70_CXXFLAGS.profile ?= -O2
+TOOL_VCC70_CXXINCS          ?= $(PATH_TOOL_VCC70_INC) $(PATH_TOOL_VCC70_ATLMFC_INC)
+TOOL_VCC70_CXXDEFS          ?=
+
+TOOL_VCC70_ASOBJSUFF        ?= .obj
+
+TOOL_VCC70_RCOBJSUFF        ?= .res
+TOOL_VCC70_RCINCS           ?= $(PATH_TOOL_VCC70_INC) $(PATH_TOOL_VCC70_ATLMFC_INC)
+
+TOOL_VCC70_ARFLAGS          ?= -nologo
+TOOL_VCC70_ARLIBSUFF        ?= .lib
+
+TOOL_VCC70_LDFLAGS          ?= -nologo
+TOOL_VCC70_LDFLAGS.debug    ?= -debug
+TOOL_VCC70_LDFLAGS.release  ?=
 
 
@@ -100,6 +109,6 @@
 # @param    $(outbase)  Output basename (full). Use this for list files and such.
 # @param    $(objsuff)  Object suffix.
-TOOL_VCC70_COMPILE_C_OUTPUT	= $(call TOOL_VCC70_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC70_PDB, $(outbase)-obj,idb)
-TOOL_VCC70_COMPILE_C_DEPEND	=
+TOOL_VCC70_COMPILE_C_OUTPUT = $(call TOOL_VCC70_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC70_PDB, $(outbase)-obj,idb)
+TOOL_VCC70_COMPILE_C_DEPEND =
 TOOL_VCC70_COMPILE_C_DEPORD =
 ifdef VCC70_NEW_DEPS
Index: /trunk/kBuild/tools/VCC80AMD64.kmk
===================================================================
--- /trunk/kBuild/tools/VCC80AMD64.kmk	(revision 666)
+++ /trunk/kBuild/tools/VCC80AMD64.kmk	(revision 667)
@@ -2,5 +2,5 @@
 ## @file
 #
-# kBuild Tool Config - Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14)
+# kBuild Tool Config - Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14), targeting AMD64.
 #
 # Copyright (c) 2004-2006 knut st. osmundsen <bird-srcspam@anduin.net>
@@ -25,50 +25,43 @@
 #
 
-
-TOOL_VCC80AMD64                    := Visual C++ 8.0 AMD64
-PATH_TOOL_VCC80AMD64               ?= $(PATH_DEV)/x86.win32/vcc/v8
-PATH_TOOL_VCC80AMD64_LIB           ?= $(PATH_TOOL_VCC80AMD64)/lib
-ifeq ($(BUILD_PLATFORM),win64)
-PATH_TOOL_VCC80AMD64_BIN           ?= $(PATH_TOOL_VCC80AMD64)/bin/amd64
+TOOL_VCC80AMD64 := Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14), targeting AMD64.
+
+# Tool Specific Properties
+ifndef PATH_TOOL_VCC80AMD64
+ PATH_TOOL_VCC80AMD64 := $(wildcard $(PATH_DEVTOOLS)/amd64.win/vcc/v8)
+ ifeq ($(PATH_TOOL_VCC80AMD64),)
+  PATH_TOOL_VCC80AMD64 := $(wildcard $(PATH_DEVTOOLS)/x86.win/vcc/v8)
+ endif
+ ifeq ($(PATH_TOOL_VCC80AMD64),)
+  PATH_TOOL_VCC80AMD64 := $(wildcard $(PATH_DEVTOOLS)/x86.win32/vcc/v8)
+ endif
+ ifneq ($(PATH_TOOL_VCC80AMD64),)
+  # done for now
+ else
+  $(warning kBuild: PATH_TOOL_VCC80AMD64 cannot be determined!)
+  PATH_TOOL_VCC80AMD64 := $(PATH_DEVTOOLS)/x86.win/vcc/v8
+ endif
 else
-PATH_TOOL_VCC80AMD64_BIN           ?= $(PATH_TOOL_VCC80AMD64)/bin/x86_amd64
-endif
-
-TOOL_VCC80AMD64_CC                 := $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/cl.exe
-TOOL_VCC80AMD64_COBJSUFF           := .obj
-TOOL_VCC80AMD64_CFLAGS             := -TC -c -nologo
-TOOL_VCC80AMD64_CFLAGS.debug       := -Od -Zi
-TOOL_VCC80AMD64_CFLAGS.release     := -O2
-TOOL_VCC80AMD64_CFLAGS.profile     := -O2
-TOOL_VCC80AMD64_CINCS              := $(PATH_TOOL_VCC80AMD64)/include
-TOOL_VCC80AMD64_CDEFS              :=
-
-TOOL_VCC80AMD64_CXX                := $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/cl.exe
-TOOL_VCC80AMD64_CXXOBJSUFF         := .obj
-TOOL_VCC80AMD64_CXXFLAGS           := -TP -c -nologo
-TOOL_VCC80AMD64_CXXFLAGS.debug     := -Od -Zi
-TOOL_VCC80AMD64_CXXFLAGS.release   := -O2
-TOOL_VCC80AMD64_CXXFLAGS.profile   := -O2
-TOOL_VCC80AMD64_CXXINCS            := $(PATH_TOOL_VCC80AMD64)/include
-TOOL_VCC80AMD64_CXXDEFS            :=
-
-TOOL_VCC80AMD64_AS                 := $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/ml64.exe
-TOOL_VCC80AMD64_ASOBJSUFF          := .obj
-
-TOOL_VCC80AMD64_RC                 := $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/../rc.exe
-TOOL_VCC80AMD64_RCOBJSUFF          := .res
-TOOL_VCC80AMD64_RCINCS             := $(PATH_TOOL_VCC80AMD64)/include
-
-TOOL_VCC80AMD64_AR                 := $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/lib.exe /MACHINE:X64
-TOOL_VCC80AMD64_ARFLAGS            := -nologo
-TOOL_VCC80AMD64_ARLIBSUFF          := .lib
-
-TOOL_VCC80AMD64_LD                 := $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/link.exe
-TOOL_VCC80AMD64_LDFLAGS            := -nologo -machine:amd64
-TOOL_VCC80AMD64_LDFLAGS.debug      := -debug
-TOOL_VCC80AMD64_LDFLAGS.release    :=
-
-TOOL_VCC80AMD64_MT                 := $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/../mt.exe
-
+ # Resolve any fancy stuff once and for all.
+ PATH_TOOL_VCC80AMD64 := $(PATH_TOOL_VCC80AMD64)
+endif
+ifeq ($(BUILD_PLATFORM).$(BUILD_PLATFORM_ARCH),win.amd64)
+PATH_TOOL_VCC80AMD64_BIN  ?= $(PATH_TOOL_VCC80AMD64)/bin/amd64
+else
+PATH_TOOL_VCC80AMD64_BIN  ?= $(PATH_TOOL_VCC80AMD64)/bin/x86_amd64
+endif
+PATH_TOOL_VCC80AMD64_LIB  ?= $(PATH_TOOL_VCC80AMD64)/lib
+PATH_TOOL_VCC80AMD64_INC  ?= $(PATH_TOOL_VCC80AMD64)/include
+PATH_TOOL_VCC80AMD64_ATLMFC ?= $(PATH_TOOL_VCC80X86)/atlmfc
+PATH_TOOL_VCC80AMD64_ATLMFC_INC ?= $(PATH_TOOL_VCC80AMD64_ATLMFC)/include
+PATH_TOOL_VCC80AMD64_ATLMFC_LIB ?= $(PATH_TOOL_VCC80AMD64_ATLMFC)/lib
+TOOL_VCC80AMD64_CC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/cl.exe
+TOOL_VCC80AMD64_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/cl.exe
+TOOL_VCC80AMD64_AS  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/ml64.exe
+TOOL_VCC80AMD64_RC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/../rc.exe
+TOOL_VCC80AMD64_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/lib.exe
+TOOL_VCC80AMD64_LD  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/link.exe
+TOOL_VCC80AMD64_MT  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80AMD64_BIN)/../mt.exe
+VCC80AMD64_NEW_DEPS = 1 ##< Enables fast DEP_IDB based dependencies.
 
 ## Constructs the correct .pdb name (the name is lowercased).
@@ -76,12 +69,36 @@
 # @param    $(2)        The extension.
 ifeq ($(filter tolower,$(KMK_FEATURES)),tolower)
-TOOL_VCC80AMD64_PDB                = $(dir $(1))$(tolower $(notdir $(1))).$(2)
+TOOL_VCC80AMD64_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2)
 else # this fallback is incorrect and won't work on a case sensitive FS.
-TOOL_VCC80AMD64_PDB                = $(1).$(2)
-endif
-
-#ifeq ($(BUILD_PLATFORM),win32)
-VCC80AMD64_NEW_DEPS = 1
-#endif
+TOOL_VCC80AMD64_PDB = $(1).$(2)
+endif
+
+TOOL_VCC80AMD64_COBJSUFF         ?= .obj
+TOOL_VCC80AMD64_CFLAGS           ?= -TC -c -nologo
+TOOL_VCC80AMD64_CFLAGS.debug     ?= -Od -Zi
+TOOL_VCC80AMD64_CFLAGS.release   ?= -O2
+TOOL_VCC80AMD64_CFLAGS.profile   ?= -O2
+TOOL_VCC80AMD64_CINCS            ?= $(PATH_TOOL_VCC80AMD64_INC)
+TOOL_VCC80AMD64_CDEFS            ?=
+
+TOOL_VCC80AMD64_CXXOBJSUFF       ?= .obj
+TOOL_VCC80AMD64_CXXFLAGS         ?= -TP -c -nologo
+TOOL_VCC80AMD64_CXXFLAGS.debug   ?= -Od -Zi
+TOOL_VCC80AMD64_CXXFLAGS.release ?= -O2
+TOOL_VCC80AMD64_CXXFLAGS.profile ?= -O2
+TOOL_VCC80AMD64_CXXINCS          ?= $(PATH_TOOL_VCC80AMD64_INC) $(PATH_TOOL_VCC80AMD64_ATLMFC_INC)
+TOOL_VCC80AMD64_CXXDEFS          ?=
+
+TOOL_VCC80AMD64_ASOBJSUFF        ?= .obj
+
+TOOL_VCC80AMD64_RCOBJSUFF        ?= .res
+TOOL_VCC80AMD64_RCINCS           ?= $(PATH_TOOL_VCC80AMD64_INC) $(PATH_TOOL_VCC80AMD64_ATLMFC_INC)
+
+TOOL_VCC80AMD64_ARFLAGS          ?= -nologo -machine:amd64
+TOOL_VCC80AMD64_ARLIBSUFF        ?= .lib
+
+TOOL_VCC80AMD64_LDFLAGS          ?= -nologo -machine:amd64
+TOOL_VCC80AMD64_LDFLAGS.debug    ?= -debug
+TOOL_VCC80AMD64_LDFLAGS.release  ?=
 
 
@@ -100,6 +117,6 @@
 # @param    $(outbase)  Output basename (full). Use this for list files and such.
 # @param    $(objsuff)  Object suffix.
-TOOL_VCC80AMD64_COMPILE_C_OUTPUT	= $(call TOOL_VCC80AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC80AMD64_PDB, $(outbase)-obj,idb)
-TOOL_VCC80AMD64_COMPILE_C_DEPEND	=
+TOOL_VCC80AMD64_COMPILE_C_OUTPUT = $(call TOOL_VCC80AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC80AMD64_PDB, $(outbase)-obj,idb)
+TOOL_VCC80AMD64_COMPILE_C_DEPEND =
 TOOL_VCC80AMD64_COMPILE_C_DEPORD =
 ifdef VCC80AMD64_NEW_DEPS
Index: /trunk/kBuild/tools/VCC80X86.kmk
===================================================================
--- /trunk/kBuild/tools/VCC80X86.kmk	(revision 666)
+++ /trunk/kBuild/tools/VCC80X86.kmk	(revision 667)
@@ -2,5 +2,5 @@
 ## @file
 #
-# kBuild Tool Config - Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14)
+# kBuild Tool Config - Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14), targeting x86.
 #
 # Copyright (c) 2004-2006 knut st. osmundsen <bird-srcspam@anduin.net>
@@ -25,49 +25,36 @@
 #
 
-
-TOOL_VCC80X86                    := Visual C++ 8.0 x86
-PATH_TOOL_VCC80X86               ?= $(PATH_DEV)/x86.win32/vcc/v8
-PATH_TOOL_VCC80X86_BIN           ?= $(PATH_TOOL_VCC80X86)/bin
-PATH_TOOL_VCC80X86_LIB           ?= $(PATH_TOOL_VCC80X86)/lib
-PATH_TOOL_VCC80X86_INC           ?= $(PATH_TOOL_VCC80X86)/include
-PATH_TOOL_VCC80X86_ATLMFC        ?= $(PATH_TOOL_VCC80X86)/atlmfc
-PATH_TOOL_VCC80X86_ATLMFC_INC    ?= $(PATH_TOOL_VCC80X86_ATLMFC)/include
-PATH_TOOL_VCC80X86_ATLMFC_LIB    ?= $(PATH_TOOL_VCC80X86_ATLMFC)/lib
-
-TOOL_VCC80X86_CC                 ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/cl.exe
-TOOL_VCC80X86_COBJSUFF           ?= .obj
-TOOL_VCC80X86_CFLAGS             ?= -TC -c -nologo
-TOOL_VCC80X86_CFLAGS.debug       ?= -Zi
-TOOL_VCC80X86_CFLAGS.release     ?= -O2
-TOOL_VCC80X86_CFLAGS.profile     ?= -O2
-TOOL_VCC80X86_CINCS              ?= $(PATH_TOOL_VCC80X86_INC)
-TOOL_VCC80X86_CDEFS              ?=
-
-TOOL_VCC80X86_CXX                ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/cl.exe
-TOOL_VCC80X86_CXXOBJSUFF         ?= .obj
-TOOL_VCC80X86_CXXFLAGS           ?= -TP -c -nologo
-TOOL_VCC80X86_CXXFLAGS.debug     ?= -Zi
-TOOL_VCC80X86_CXXFLAGS.release   ?= -O2
-TOOL_VCC80X86_CXXFLAGS.profile   ?= -O2
-TOOL_VCC80X86_CXXINCS            ?= $(PATH_TOOL_VCC80X86_INC) $(PATH_TOOL_VCC80X86_ATLMFC_INC)
-TOOL_VCC80X86_CXXDEFS            ?=
-
-TOOL_VCC80X86_AS                 ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/ml.exe
-TOOL_VCC80X86_ASOBJSUFF          ?= .obj
-
-TOOL_VCC80X86_RC                 ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/rc.exe
-TOOL_VCC80X86_RCOBJSUFF          ?= .res
-TOOL_VCC80X86_RCINCS             ?= $(PATH_TOOL_VCC80X86_INC) $(PATH_TOOL_VCC80X86_ATLMFC_INC)
-
-TOOL_VCC80X86_AR                 ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/lib.exe
-TOOL_VCC80X86_ARFLAGS            ?= -nologo
-TOOL_VCC80X86_ARLIBSUFF          ?= .lib
-
-TOOL_VCC80X86_LD                 ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/link.exe
-TOOL_VCC80X86_LDFLAGS            ?= -nologo -machine:x86
-TOOL_VCC80X86_LDFLAGS.debug      ?= -debug
-TOOL_VCC80X86_LDFLAGS.release    ?=
-
-TOOL_VCC80X86_MT                 ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/mt.exe
+TOOL_VCC80X86 := Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14), targeting x86.
+
+# Tool Specific Properties
+ifndef PATH_TOOL_VCC80X86
+ PATH_TOOL_VCC80X86 := $(wildcard $(PATH_DEVTOOLS)/x86.win/vcc/v8)
+ ifeq ($(PATH_TOOL_VCC80X86),)
+  PATH_TOOL_VCC80X86 := $(wildcard $(PATH_DEVTOOLS)/x86.win32/vcc/v8)
+ endif
+ ifneq ($(PATH_TOOL_VCC80X86),)
+  # done for now
+ else
+  $(warning kBuild: PATH_TOOL_VCC80X86 cannot be determined!)
+  PATH_TOOL_VCC80X86 := $(PATH_DEVTOOLS)/x86.win/vcc/v8
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_TOOL_VCC80X86 := $(PATH_TOOL_VCC80X86)
+endif
+PATH_TOOL_VCC80X86_BIN    ?= $(PATH_TOOL_VCC80X86)/bin
+PATH_TOOL_VCC80X86_LIB    ?= $(PATH_TOOL_VCC80X86)/lib
+PATH_TOOL_VCC80X86_INC    ?= $(PATH_TOOL_VCC80X86)/include
+PATH_TOOL_VCC80X86_ATLMFC ?= $(PATH_TOOL_VCC80X86)/atlmfc
+PATH_TOOL_VCC80X86_ATLMFC_INC ?= $(PATH_TOOL_VCC80X86_ATLMFC)/include
+PATH_TOOL_VCC80X86_ATLMFC_LIB ?= $(PATH_TOOL_VCC80X86_ATLMFC)/lib
+TOOL_VCC80X86_CC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/cl.exe
+TOOL_VCC80X86_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/cl.exe
+TOOL_VCC80X86_AS  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/ml.exe
+TOOL_VCC80X86_RC  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/rc.exe
+TOOL_VCC80X86_AR  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/lib.exe
+TOOL_VCC80X86_LD  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/link.exe
+TOOL_VCC80X86_MT  ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC80X86_BIN)/mt.exe
+VCC80X86_NEW_DEPS = 1 ##< Enables fast DEP_IDB based dependencies.
 
 ## Constructs the correct .pdb name (the name is lowercased).
@@ -81,7 +68,32 @@
 
 
-#ifeq ($(BUILD_PLATFORM),win32)
-VCC80X86_NEW_DEPS = 1
-#endif
+# General Properties used by kBuild
+TOOL_VCC80X86_COBJSUFF         ?= .obj
+TOOL_VCC80X86_CFLAGS           ?= -TC -c -nologo
+TOOL_VCC80X86_CFLAGS.debug     ?= -Zi
+TOOL_VCC80X86_CFLAGS.release   ?= -O2
+TOOL_VCC80X86_CFLAGS.profile   ?= -O2
+TOOL_VCC80X86_CINCS            ?= $(PATH_TOOL_VCC80X86_INC)
+TOOL_VCC80X86_CDEFS            ?=
+
+TOOL_VCC80X86_CXXOBJSUFF       ?= .obj
+TOOL_VCC80X86_CXXFLAGS         ?= -TP -c -nologo
+TOOL_VCC80X86_CXXFLAGS.debug   ?= -Zi
+TOOL_VCC80X86_CXXFLAGS.release ?= -O2
+TOOL_VCC80X86_CXXFLAGS.profile ?= -O2
+TOOL_VCC80X86_CXXINCS          ?= $(PATH_TOOL_VCC80X86_INC) $(PATH_TOOL_VCC80X86_ATLMFC_INC)
+TOOL_VCC80X86_CXXDEFS          ?=
+
+TOOL_VCC80X86_ASOBJSUFF        ?= .obj
+
+TOOL_VCC80X86_RCOBJSUFF        ?= .res
+TOOL_VCC80X86_RCINCS           ?= $(PATH_TOOL_VCC80X86_INC) $(PATH_TOOL_VCC80X86_ATLMFC_INC)
+
+TOOL_VCC80X86_ARFLAGS          ?= -nologo
+TOOL_VCC80X86_ARLIBSUFF        ?= .lib
+
+TOOL_VCC80X86_LDFLAGS          ?= -nologo -machine:x86
+TOOL_VCC80X86_LDFLAGS.debug    ?= -debug
+TOOL_VCC80X86_LDFLAGS.release  ?=
 
 
@@ -100,6 +112,6 @@
 # @param    $(outbase)  Output basename (full). Use this for list files and such.
 # @param    $(objsuff)  Object suffix.
-TOOL_VCC80X86_COMPILE_C_OUTPUT	= $(call TOOL_VCC80X86_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC80X86_PDB, $(outbase)-obj,idb)
-TOOL_VCC80X86_COMPILE_C_DEPEND	=
+TOOL_VCC80X86_COMPILE_C_OUTPUT = $(call TOOL_VCC80X86_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC80X86_PDB, $(outbase)-obj,idb)
+TOOL_VCC80X86_COMPILE_C_DEPEND =
 TOOL_VCC80X86_COMPILE_C_DEPORD =
 ifdef VCC80X86_NEW_DEPS
@@ -168,4 +180,5 @@
 endif
 
+## @todo configure the assembler template.
 
 ## Compile resource source.
Index: /trunk/kBuild/tools/WGET.kmk
===================================================================
--- /trunk/kBuild/tools/WGET.kmk	(revision 666)
+++ /trunk/kBuild/tools/WGET.kmk	(revision 667)
@@ -27,5 +27,16 @@
 TOOL_WGET := wget fetcher.
 
-TOOL_WGET_FETCH ?= wget$(HOSTSUFF_EXE)
+# Tool Specific Properties
+ifndef TOOL_WGET_FETCH
+ TOOL_WGET_FETCH := $(wildcard $(PATH_DEVTOOLS_BLD)/bin/wget$(HOSTSUFF_EXE))
+ ifeq ($(TOOL_WGET_FETCH),)
+  TOOL_WGET_FETCH := wget$(HOSTSUFF_EXE)
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ TOOL_WGET_FETCH := $(TOOL_WGET_FETCH)
+endif
+
+# General Properties used by kBuild
 TOOL_WGET_FETCHFLAGS ?= --passive-ftp -t 5 -T 60
 
Index: /trunk/kBuild/tools/XGCCAMD64LINUX.kmk
===================================================================
--- /trunk/kBuild/tools/XGCCAMD64LINUX.kmk	(revision 666)
+++ /trunk/kBuild/tools/XGCCAMD64LINUX.kmk	(revision 667)
@@ -2,5 +2,5 @@
 ## @file
 #
-# kBuild Tool Config - GCC Cross compiler for AMD64 (aka x86_64).
+# kBuild Tool Config - GCC Cross compiler for AMD64+Linux.
 #
 # Copyright (c) 2004-2005 knut st. osmundsen <bird-srcspam@anduin.net>
@@ -25,88 +25,86 @@
 #
 
-TOOL_XGCCAMD64LINUX                    := GCC Cross Compiler for AMD64
-
-#
-# Determin some stuff dynamically.
-#
-_TOOL_XGCCAMD64LINUX_EXEC_PREFIX       ?=
-_TOOL_XGCCAMD64LINUX_SUFF_EXE          ?=
+TOOL_XGCCAMD64LINUX := GCC Cross compiler for AMD64+Linux.
+
+# Tool Specific Properties
+TOOL_XGCCAMD64LINUX_HOSTSUFF_EXE ?= $(HOSTSUFF_EXE)
 ifeq ($(BUILD_PLATFORM).$(BUILD_PLATFORM_ARCH),linux.amd64)
- # not x-compile.
- PATH_TOOL_XGCCAMD64LINUX              ?=
- _TOOL_XGCCAMD64LINUX_PREFIX           ?=
+ # not x-compile, use the default gcc.
+ TOOL_XGCCAMD64LINUX_PREFIX := $(TOOL_XGCCAMD64LINUX_PREFIX)
 else # x-compile:
  # find the latest xgcc build.
- _TOOL_XGCCAMD64LINUX_PREFIX           ?= x86_64-unknown-linux-gnu-
- ifndef PATH_TOOL_XGCCAMD64LINUX
-  PATH_DEV_BLD                         ?= $(PATH_DEV)/$(BUILD_PLATFORM_ARCH).$(BUILD_PLATFORM)
-  PATH_TOOL_XGCCAMD64LINUX             := $(sort $(wildcard $(PATH_DEV_BLD)/x86_64-unknown-linux-gnu/*))
-  ifeq ($(filter-out win.amd64,$(BUILD_PLATFORM).$(BUILD_PLATFORM_ARCH)),) # these can use the windows build.
-   _TOOL_XGCCAMD64LINUX_EXEC_PREFIX    := $(EXEC_X86_WIN32)
-   PATH_TOOL_XGCCAMD64LINUX            := $(sort $(wildcard $(PATH_DEV)/x86.win32/x86_64-unknown-linux-gnu/*))
+ ifdef TOOL_XGCCAMD64LINUX_PREFIX
+  TOOL_XGCCAMD64LINUX_PREFIX := x86_64-unknown-linux-gnu-
+  ifndef PATH_TOOL_XGCCAMD64LINUX
+   PATH_TOOL_XGCCAMD64LINUX := $(sort $(wildcard $(PATH_DEVTOOLS_BLD)/x86_64-unknown-linux-gnu/*))
+   ifeq ($(PATH_TOOL_XGCCAMD64LINUX),)
+    ifeq ($(filter-out win.amd64,$(BUILD_PLATFORM).$(BUILD_PLATFORM_ARCH)),) # these can use the windows build.
+     TOOL_XGCCAMD64LINUX_EXEC_PREFIX ?= $(EXEC_X86_WIN32)
+     TOOL_XGCCAMD64LINUX_HOSTSUFF_EXE := .exe
+     PATH_TOOL_XGCCAMD64LINUX := $(sort $(wildcard $(PATH_DEVTOOLS)/x86.win/x86_64-unknown-linux-gnu/*))
+     ifeq ($(PATH_TOOL_XGCCAMD64LINUX),)
+      PATH_TOOL_XGCCAMD64LINUX := $(sort $(wildcard $(PATH_DEVTOOLS)/x86.win32/x86_64-unknown-linux-gnu/*))
+     endif
+    endif
+   endif
+   ifneq ($(PATH_TOOL_XGCCAMD64LINUX),)
+    PATH_TOOL_XGCCAMD64LINUX := $(call lastword,$(PATH_TOOL_XGCCAMD64LINUX))
+   endif
+  endif # !PATH_TOOL_XGCCAMD64LINUX
+  ifneq ($(PATH_TOOL_XGCCAMD64LINUX),)
+   TOOL_XGCCAMD64LINUX_PREFIX := $(TOOL_XGCCAMD64LINUX_EXEC_PREFIX) $(PATH_TOOL_XGCCAMD64LINUX)/bin/$(TOOL_XGCCAMD64LINUX_PREFIX)
   endif
-  ifneq ($(PATH_TOOL_XGCCAMD64LINUX),)
-   PATH_TOOL_XGCCAMD64LINUX            := $(call lastword,$(PATH_TOOL_XGCCAMD64LINUX))
-  endif
- endif # !PATH_TOOL_XGCCAMD64LINUX
+ else
+  # Resolve any fancy stuff once and for all.
+  TOOL_XGCCAMD64LINUX_PREFIX := $(TOOL_XGCCAMD64LINUX_PREFIX)
+ endif
 endif
-ifneq ($(PATH_TOOL_XGCCAMD64LINUX),)
-_TOOL_XGCCAMD64LINUX_PREFIX            := $(_TOOL_XGCCAMD64LINUX_EXEC_PREFIX) $(PATH_TOOL_XGCCAMD64LINUX)/bin/$(_TOOL_XGCCAMD64LINUX_PREFIX)
-endif
-
-
-TOOL_XGCCAMD64LINUX_CC                 ?= $(_TOOL_XGCCAMD64LINUX_PREFIX)gcc$(HOSTSUFF_EXE)
-TOOL_XGCCAMD64LINUX_COBJSUFF           ?= .o
-TOOL_XGCCAMD64LINUX_CFLAGS             ?= -g
-TOOL_XGCCAMD64LINUX_CFLAGS.debug       ?= -O0
-TOOL_XGCCAMD64LINUX_CFLAGS.release     ?= -O2
-TOOL_XGCCAMD64LINUX_CFLAGS.profile     ?= -O2 #-pg
-TOOL_XGCCAMD64LINUX_CINCS              ?=
-TOOL_XGCCAMD64LINUX_CDEFS              ?=
-
-TOOL_XGCCAMD64LINUX_CXX                ?= $(_TOOL_XGCCAMD64LINUX_PREFIX)g++$(HOSTSUFF_EXE)
-TOOL_XGCCAMD64LINUX_CXXOBJSUFF         ?= .o
-TOOL_XGCCAMD64LINUX_CXXOBJSUFF         ?= .o
-TOOL_XGCCAMD64LINUX_CXXFLAGS           ?= -g
-TOOL_XGCCAMD64LINUX_CXXFLAGS.debug     ?= -O0
-TOOL_XGCCAMD64LINUX_CXXFLAGS.release   ?= -O2
-TOOL_XGCCAMD64LINUX_CXXFLAGS.profile   ?= -O2 #-pg
-TOOL_XGCCAMD64LINUX_CXXINCS            ?=
-TOOL_XGCCAMD64LINUX_CXXDEFS            ?=
-
-TOOL_XGCCAMD64LINUX_AS                 ?= $(_TOOL_XGCCAMD64LINUX_PREFIX)gcc$(HOSTSUFF_EXE)
-TOOL_XGCCAMD64LINUX_ASFLAGS            ?= -g -x assembler-with-cpp
-TOOL_XGCCAMD64LINUX_ASOBJSUFF          ?= .o
-
-TOOL_XGCCAMD64LINUX_AR                 ?= $(_TOOL_XGCCAMD64LINUX_PREFIX)ar$(HOSTSUFF_EXE)
-TOOL_XGCCAMD64LINUX_ARFLAGS            ?= cr
-TOOL_XGCCAMD64LINUX_ARLIBSUFF          ?= .a
-
-TOOL_XGCCAMD64LINUX_LD                 ?= $(_TOOL_XGCCAMD64LINUX_PREFIX)g++$(HOSTSUFF_EXE)
-TOOL_XGCCAMD64LINUX_LD_SYSMOD          ?= $(_TOOL_XGCCAMD64LINUX_PREFIX)ld$(HOSTSUFF_EXE)
-TOOL_XGCCAMD64LINUX_LDFLAGS            ?=
-TOOL_XGCCAMD64LINUX_LDFLAGS.debug      ?= -g
-TOOL_XGCCAMD64LINUX_LDFLAGS.release    ?= -s
-ifndef TOOL_XGCCAMD64LINUX_LDFLAGS.$(BUILD_TARGET)
-TOOL_XGCCAMD64LINUX_LDFLAGS.dll        ?= -shared
-else
-TOOL_XGCCAMD64LINUX_LDFLAGS.dll        ?= $(TOOL_XGCCAMD64LINUX_LDFLAGS.$(BUILD_TARGET))
-endif
-TOOL_XGCCAMD64LINUX_LDFLAGS.sysmod     ?= -r
-TOOL_XGCCAMD64LINUX_LD_SONAME          ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
-ifeq ($(BUILD_TARGET),os2)
-TOOL_XGCCAMD64LINUX_LD_MAP             ?= -Zmap=$(1)
-else
-TOOL_XGCCAMD64LINUX_LD_MAP             ?= -Wl,-Map -Wl,$(1) -Wl,--cref
-endif
-ifeq ($(BUILD_TARGET),os2)
-TOOL_XGCCAMD64LINUX_LD_SYSMOD_MAP      ?= -Zmap=$(1)
-else
-TOOL_XGCCAMD64LINUX_LD_SYSMOD_MAP      ?= -Map $(1) --cref
-endif
+
+TOOL_XGCCAMD64LINUX_CC  ?= $(TOOL_XGCCAMD64LINUX_PREFIX)gcc$(TOOL_XGCCAMD64LINUX_HOSTSUFF_EXE)
+TOOL_XGCCAMD64LINUX_CXX ?= $(TOOL_XGCCAMD64LINUX_PREFIX)g++$(TOOL_XGCCAMD64LINUX_HOSTSUFF_EXE)
+TOOL_XGCCAMD64LINUX_AS  ?= $(TOOL_XGCCAMD64LINUX_PREFIX)gcc$(TOOL_XGCCAMD64LINUX_HOSTSUFF_EXE)
+TOOL_XGCCAMD64LINUX_AR  ?= $(TOOL_XGCCAMD64LINUX_PREFIX)ar$(TOOL_XGCCAMD64LINUX_HOSTSUFF_EXE)
+TOOL_XGCCAMD64LINUX_LD  ?= $(TOOL_XGCCAMD64LINUX_PREFIX)g++$(TOOL_XGCCAMD64LINUX_HOSTSUFF_EXE)
+TOOL_XGCCAMD64LINUX_LD_SYSMOD ?= $(TOOL_XGCCAMD64LINUX_PREFIX)ld$(TOOL_XGCCAMD64LINUX_HOSTSUFF_EXE)
+
+TOOL_XGCCAMD64LINUX_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
+TOOL_XGCCAMD64LINUX_LD_MAP ?= -Wl,-Map -Wl,$(1) -Wl,--cref
+TOOL_XGCCAMD64LINUX_LD_SYSMOD_MAP ?= -Map $(1) --cref
+TOOL_XGCCAMD64LINUX_LDFLAGS.dll ?= -shared
+TOOL_XGCCAMD64LINUX_LDFLAGS.sysmod ?= -r
+
 ifdef SLKRUNS
 TOOL_XGCCAMD64LINUX_CC  += -fmessage-length=0
 TOOL_XGCCAMD64LINUX_CXX += -fmessage-length=0
 endif
+
+# General Properties used by kBuild
+TOOL_XGCCAMD64LINUX_COBJSUFF         ?= .o
+TOOL_XGCCAMD64LINUX_CFLAGS           ?= -g
+TOOL_XGCCAMD64LINUX_CFLAGS.debug     ?= -O0
+TOOL_XGCCAMD64LINUX_CFLAGS.release   ?= -O2
+TOOL_XGCCAMD64LINUX_CFLAGS.profile   ?= -O2 #-pg
+TOOL_XGCCAMD64LINUX_CINCS            ?=
+TOOL_XGCCAMD64LINUX_CDEFS            ?=
+
+TOOL_XGCCAMD64LINUX_CXXOBJSUFF       ?= .o
+TOOL_XGCCAMD64LINUX_CXXOBJSUFF       ?= .o
+TOOL_XGCCAMD64LINUX_CXXFLAGS         ?= -g
+TOOL_XGCCAMD64LINUX_CXXFLAGS.debug   ?= -O0
+TOOL_XGCCAMD64LINUX_CXXFLAGS.release ?= -O2
+TOOL_XGCCAMD64LINUX_CXXFLAGS.profile ?= -O2 #-pg
+TOOL_XGCCAMD64LINUX_CXXINCS          ?=
+TOOL_XGCCAMD64LINUX_CXXDEFS          ?=
+
+TOOL_XGCCAMD64LINUX_ASFLAGS          ?= -g -x assembler-with-cpp
+TOOL_XGCCAMD64LINUX_ASOBJSUFF        ?= .o
+
+TOOL_XGCCAMD64LINUX_ARFLAGS          ?= cr
+TOOL_XGCCAMD64LINUX_ARLIBSUFF        ?= .a
+
+TOOL_XGCCAMD64LINUX_LDFLAGS          ?=
+TOOL_XGCCAMD64LINUX_LDFLAGS.debug    ?= -g
+TOOL_XGCCAMD64LINUX_LDFLAGS.release  ?= -s
+
 
 
Index: /trunk/kBuild/tools/YASM.kmk
===================================================================
--- /trunk/kBuild/tools/YASM.kmk	(revision 666)
+++ /trunk/kBuild/tools/YASM.kmk	(revision 667)
@@ -25,20 +25,24 @@
 #
 
+TOOL_YASM := YASM v0.4.0+
 
-TOOL_YASM                     := Yasm, the modular assembler v0.4.0+
+# Tool Specific Properties
 ifndef PATH_TOOL_YASM
-PATH_DEV_BLD                  ?= $(PATH_DEV)/$(BUILD_PLATFORM_ARCH).$(BUILD_PLATFORM)
-PATH_TOOL_YASM                := $(sort $(wildcard $(PATH_DEV_BLD)/yasm/v*.*))
+ PATH_TOOL_YASM := $(sort $(wildcard $(PATH_DEVTOOL_BLD)/yasm/v*.*))
+ ifneq ($(PATH_TOOL_YASM),)
+  PATH_TOOL_YASM := $(call lastword,$(PATH_TOOL_YASM))
+ endif
+else
+ # Resolve any fancy stuff once and for all.
+ PATH_TOOL_YASM := $(PATH_TOOL_YASM)
+endif
 ifneq ($(PATH_TOOL_YASM),)
-PATH_TOOL_YASM                := $(call lastword,$(PATH_TOOL_YASM))
-endif
+ TOOL_YASM_AS ?= $(PATH_TOOL_YASM)/yasm$(HOSTSUFF_EXE)
+else
+ TOOL_YASM_AS ?= yasm$(HOSTSUFF_EXE)
 endif
 
-ifneq ($(PATH_TOOL_YASM),)
-TOOL_YASM_AS                  ?= $(PATH_TOOL_YASM)/yasm$(HOSTSUFF_EXE)
-else
-TOOL_YASM_AS                  ?= yasm$(HOSTSUFF_EXE)
-endif
-TOOL_YASM_ASFLAGS             ?=
+# General Properties used by kBuild
+TOOL_YASM_ASFLAGS ?=
 
 
