Index: /trunk/kBuild/tools/GXX.kmk
===================================================================
--- /trunk/kBuild/tools/GXX.kmk	(revision 3390)
+++ /trunk/kBuild/tools/GXX.kmk	(revision 3391)
@@ -35,17 +35,23 @@
 
 # Tool Specific Properties
-TOOL_GXX_CC  ?= gcc$(HOSTSUFF_EXE)
-TOOL_GXX_CXX ?= g++$(HOSTSUFF_EXE)
-TOOL_GXX_PCH ?= $(TOOL_GXX_CXX)
-TOOL_GXX_AS  ?= gcc$(HOSTSUFF_EXE)
-TOOL_GXX_AR  ?= ar$(HOSTSUFF_EXE)
-TOOL_GXX_RANLIB ?= ranlib$(HOSTSUFF_EXE)
-TOOL_GXX_LD  ?= g++$(HOSTSUFF_EXE)
-TOOL_GXX_LDFLAGS.dll.os2 ?= -Zdll
+ifndef TOOL_GXX_PREFIX
+ TOOL_GXX_PREFIX :=
+endif
+ifndef TOOL_GXX_SUFFIX
+ TOOL_GXX_SUFFIX := $(HOSTSUFF_EXE)
+endif
+TOOL_GXX_CC     ?= $(TOOL_GXX_PREFIX)gcc$(TOOL_GXX_SUFFIX)
+TOOL_GXX_CXX    ?= $(TOOL_GXX_PREFIX)g++$(TOOL_GXX_SUFFIX)
+TOOL_GXX_PCH    ?= $(TOOL_GXX_CXX)
+TOOL_GXX_AS     ?= $(TOOL_GXX_PREFIX)gcc$(TOOL_GXX_SUFFIX)
+TOOL_GXX_AR     ?= $(TOOL_GXX_PREFIX)ar$(TOOL_GXX_SUFFIX)
+TOOL_GXX_RANLIB ?= $(TOOL_GXX_PREFIX)ranlib$(TOOL_GXX_SUFFIX)
+TOOL_GXX_LD     ?= $(TOOL_GXX_PREFIX)g++$(TOOL_GXX_SUFFIX)
+TOOL_GXX_LDFLAGS.dll.os2    ?= -Zdll
 TOOL_GXX_LDFLAGS.dll.darwin ?= -dynamiclib
 ifndef TOOL_GXX_LDFLAGS.$(KBUILD_TARGET)
-TOOL_GXX_LDFLAGS.dll ?= -shared
+ TOOL_GXX_LDFLAGS.dll       ?= -shared
 else
-TOOL_GXX_LDFLAGS.dll ?= $(TOOL_GXX_LDFLAGS.$(KBUILD_TARGET))
+ TOOL_GXX_LDFLAGS.dll       ?= $(TOOL_GXX_LDFLAGS.$(KBUILD_TARGET))
 endif
 
Index: /trunk/kBuild/tools/GXX3.kmk
===================================================================
--- /trunk/kBuild/tools/GXX3.kmk	(revision 3390)
+++ /trunk/kBuild/tools/GXX3.kmk	(revision 3391)
@@ -1,5 +1,5 @@
 # $Id$
 ## @file
-# kBuild Tool Config - Generic GCC v3.2.x using the system GCC and Binutils, for building C++ code.
+# kBuild Tool Config - Generic GCC v3.2+ using the system GCC and Binutils, for building C++ code.
 #
 
@@ -35,38 +35,44 @@
 
 # Tool Specific Properties
-TOOL_GXX3_CC  ?= gcc$(HOSTSUFF_EXE)
-TOOL_GXX3_CXX ?= g++$(HOSTSUFF_EXE)
+ifndef TOOL_GXX3_PREFIX
+ TOOL_GXX3_PREFIX :=
+endif
+ifndef TOOL_GXX3_SUFFIX
+ TOOL_GXX3_SUFFIX := $(HOSTSUFF_EXE)
+endif
+TOOL_GXX3_CC  ?= $(TOOL_GXX3_PREFIX)gcc$(TOOL_GXX3_SUFFIX)
+TOOL_GXX3_CXX ?= $(TOOL_GXX3_PREFIX)g++$(TOOL_GXX3_SUFFIX)
 TOOL_GXX3_PCH ?= $(TOOL_GXX3_CXX)
-TOOL_GXX3_AS  ?= gcc$(HOSTSUFF_EXE)
-ifeq ($(KBUILD_TARGET),solaris)
- TOOL_GXX3_AR ?= gar$(HOSTSUFF_EXE)
-else
- TOOL_GXX3_AR ?= ar$(HOSTSUFF_EXE)
+TOOL_GXX3_AS  ?= $(TOOL_GXX3_PREFIX)gcc$(TOOL_GXX3_SUFFIX)
+if1of ($(KBUILD_TARGET),solaris)
+ TOOL_GXX3_AR ?= $(TOOL_GXX3_PREFIX)gar$(TOOL_GXX3_SUFFIX)
+else
+ TOOL_GXX3_AR ?= $(TOOL_GXX3_PREFIX)ar$(TOOL_GXX3_SUFFIX)
 endif
 ifeq ($(KBUILD_TARGET),os2)
- TOOL_GXX3_AR_IMP ?= emximp$(HOSTSTUFF_EXE)
-else
- TOOL_GXX3_AR_IMP ?= $(ECHO) not supported!
-endif
-TOOL_GXX3_LD ?= g++$(HOSTSUFF_EXE)
-TOOL_GXX3_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)
+ TOOL_GXX3_AR_IMP   ?= $(TOOL_GXX3_PREFIX)emximp$(TOOL_GXX3_SUFFIX)
+else
+ TOOL_GXX3_AR_IMP   ?= $(ECHO) not supported!
+endif
+TOOL_GXX3_LD        ?= $(TOOL_GXX3_PREFIX)g++$(TOOL_GXX3_SUFFIX)
+TOOL_GXX3_LD_SYSMOD ?= $(TOOL_GXX3_PREFIX)ld$(TOOL_GXX3_SUFFIX)
 ifndef TOOL_GXX3_LDFLAGS.$(KBUILD_TARGET)
- TOOL_GXX3_LDFLAGS.dll ?= -shared
-else
- TOOL_GXX3_LDFLAGS.dll ?= $(TOOL_GXX3_LDFLAGS.$(KBUILD_TARGET))
+ TOOL_GXX3_LDFLAGS.dll   ?= -shared
+else
+ TOOL_GXX3_LDFLAGS.dll   ?= $(TOOL_GXX3_LDFLAGS.$(KBUILD_TARGET))
 endif
 TOOL_GXX3_LDFLAGS.sysmod ?= -r
-TOOL_GXX3_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
+TOOL_GXX3_LD_SONAME      ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
 ifeq ($(KBUILD_TARGET),os2)
- TOOL_GXX3_LD_MAP ?= -Zmap=$(1)
+ TOOL_GXX3_LD_MAP        ?= -Zmap=$(1)
  TOOL_GXX3_LD_SYSMOD_MAP ?= -Zmap=$(1)
 else
- TOOL_GXX3_LD_MAP ?=
+ TOOL_GXX3_LD_MAP        ?=
  TOOL_GXX3_LD_SYSMOD_MAP ?=
 endif
 if1of ($(KBUILD_HOST), solaris)
- TOOL_GXX3_OBJCOPY ?= gobjcopy$(HOSTSUFF_EXE)
-else
- TOOL_GXX3_OBJCOPY ?= objcopy$(HOSTSUFF_EXE)
+ TOOL_GXX3_OBJCOPY  ?= $(TOOL_GXX3_PREFIX)gobjcopy$(TOOL_GXX3_SUFFIX)
+else
+ TOOL_GXX3_OBJCOPY  ?= $(TOOL_GXX3_PREFIX)objcopy$(TOOL_GXX3_SUFFIX)
 endif
 
Index: /trunk/kBuild/tools/GXX32.kmk
===================================================================
--- /trunk/kBuild/tools/GXX32.kmk	(revision 3390)
+++ /trunk/kBuild/tools/GXX32.kmk	(revision 3391)
@@ -36,32 +36,42 @@
 
 # Tool Specific Properties
-TOOL_GXX32_CC  ?= gcc$(HOSTSUFF_EXE) -m32
-TOOL_GXX32_CXX ?= g++$(HOSTSUFF_EXE) -m32
+ifndef TOOL_GXX32_PREFIX
+ TOOL_GXX32_PREFIX :=
+endif
+ifndef TOOL_GXX32_SUFFIX
+ TOOL_GXX32_SUFFIX := $(HOSTSUFF_EXE)
+endif
+TOOL_GXX32_CC  ?= $(TOOL_GXX32_PREFIX)gcc$(TOOL_GXX32_SUFFIX) -m32
+TOOL_GXX32_CXX ?= $(TOOL_GXX32_PREFIX)g++$(TOOL_GXX32_SUFFIX) -m32
 TOOL_GXX32_PCH ?= $(TOOL_GXX32_CXX)
-TOOL_GXX32_AS  ?= gcc$(HOSTSUFF_EXE) -m32
-TOOL_GXX32_AR  ?= ar$(HOSTSUFF_EXE)
-TOOL_GXX32_LD  ?= g++$(HOSTSUFF_EXE) -m32
-TOOL_GXX32_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)
+TOOL_GXX32_AS  ?= $(TOOL_GXX32_PREFIX)gcc$(TOOL_GXX32_SUFFIX) -m32
+if1of ($(KBUILD_TARGET),solaris)
+ TOOL_GXX32_AR ?= $(TOOL_GXX32_PREFIX)gar$(TOOL_GXX32_SUFFIX)
+else
+ TOOL_GXX32_AR ?= $(TOOL_GXX32_PREFIX)ar$(TOOL_GXX32_SUFFIX)
+endif
+TOOL_GXX32_LD  ?= $(TOOL_GXX32_PREFIX)g++$(TOOL_GXX32_SUFFIX) -m32
+TOOL_GXX32_LD_SYSMOD ?= $(TOOL_GXX32_PREFIX)ld$(TOOL_GXX32_SUFFIX)
 ifndef TOOL_GXX32_LDFLAGS.$(KBUILD_TARGET)
-TOOL_GXX32_LDFLAGS.dll ?= -shared
-else
-TOOL_GXX32_LDFLAGS.dll ?= $(TOOL_GXX32_LDFLAGS.$(KBUILD_TARGET))
+ TOOL_GXX32_LDFLAGS.dll ?= -shared
+else
+ TOOL_GXX32_LDFLAGS.dll ?= $(TOOL_GXX32_LDFLAGS.$(KBUILD_TARGET))
 endif
 TOOL_GXX32_LDFLAGS.sysmod ?= -r -m elf_i386$(if-expr "$(KBUILD_TARGET)" == "freebsd" || "$(KBUILD_TARGET)" == "gnukfbsd",_fbsd,)
 TOOL_GXX32_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
 ifeq ($(KBUILD_TARGET),os2)
-TOOL_GXX32_LD_MAP ?= -Zmap=$(1)
-else
-TOOL_GXX32_LD_MAP ?=
+ TOOL_GXX32_LD_MAP ?= -Zmap=$(1)
+else
+ TOOL_GXX32_LD_MAP ?=
 endif
 ifeq ($(KBUILD_TARGET),os2)
-TOOL_GXX32_LD_SYSMOD_MAP ?= -Zmap=$(1)
-else
-TOOL_GXX32_LD_SYSMOD_MAP ?=
+ TOOL_GXX32_LD_SYSMOD_MAP ?= -Zmap=$(1)
+else
+ TOOL_GXX32_LD_SYSMOD_MAP ?=
 endif
 if1of ($(KBUILD_HOST), solaris)
- TOOL_GXX32_OBJCOPY ?= gobjcopy$(HOSTSUFF_EXE)
-else
- TOOL_GXX32_OBJCOPY ?= objcopy$(HOSTSUFF_EXE)
+ TOOL_GXX32_OBJCOPY ?= $(TOOL_GXX32_PREFIX)gobjcopy$(TOOL_GXX32_SUFFIX)
+else
+ TOOL_GXX32_OBJCOPY ?= $(TOOL_GXX32_PREFIX)objcopy$(TOOL_GXX32_SUFFIX)
 endif
 
Index: /trunk/kBuild/tools/GXX3OMF.kmk
===================================================================
--- /trunk/kBuild/tools/GXX3OMF.kmk	(revision 3390)
+++ /trunk/kBuild/tools/GXX3OMF.kmk	(revision 3391)
@@ -35,25 +35,34 @@
 
 # Tool Specific Properties
-TOOL_GXX3OMF_CC  ?= gcc$(HOSTSUFF_EXE)
-TOOL_GXX3OMF_CXX ?= g++$(HOSTSUFF_EXE)
-TOOL_GXX3OMF_PCH ?= $(TOOL_GXX3OMF_CXX)
-TOOL_GXX3OMF_AS  ?= gcc$(HOSTSUFF_EXE)
-TOOL_GXX3OMF_AR  ?= emxomfar$(HOSTSUFF_EXE)
-TOOL_GXX3OMF_AR_IMP ?= emximp$(HOSTSUFF_EXE)
-TOOL_GXX3OMF_LD ?= g++$(HOSTSUFF_EXE)
-TOOL_GXX3OMF_LD_SYSMOD ?= g++$(HOSTSUFF_EXE)
+ifndef TOOL_GXX3OMF_PREFIX
+ TOOL_GXX3OMF_PREFIX :=
+endif
+ifndef TOOL_GXX3OMF_SUFFIX
+ TOOL_GXX3OMF_SUFFIX := $(HOSTSUFF_EXE)
+endif
+TOOL_GXX3OMF_CC        ?= $(TOOL_GXX3OMF_PREFIX)gcc$(TOOL_GXX3OMF_SUFFIX)
+TOOL_GXX3OMF_CXX       ?= $(TOOL_GXX3OMF_PREFIX)g++$(TOOL_GXX3OMF_SUFFIX)
+TOOL_GXX3OMF_PCH       ?= $(TOOL_GXX3OMF_CXX)
+TOOL_GXX3OMF_AS        ?= $(TOOL_GXX3OMF_PREFIX)gcc$(TOOL_GXX3OMF_SUFFIX)
+TOOL_GXX3OMF_AR        ?= $(TOOL_GXX3OMF_PREFIX)emxomfar$(TOOL_GXX3OMF_SUFFIX)
+TOOL_GXX3OMF_AR_IMP    ?= $(TOOL_GXX3OMF_PREFIX)emximp$(TOOL_GXX3OMF_SUFFIX)
+TOOL_GXX3OMF_LD        ?= $(TOOL_GXX3OMF_PREFIX)g++$(TOOL_GXX3OMF_SUFFIX)
+TOOL_GXX3OMF_LD_SYSMOD ?= $(TOOL_GXX3OMF_PREFIX)g++$(TOOL_GXX3OMF_SUFFIX)
 ifndef TOOL_GXX3OMF_LDFLAGS.$(KBUILD_TARGET)
-TOOL_GXX3OMF_LDFLAGS.dll ?= -shared -Zdll
+ TOOL_GXX3OMF_LDFLAGS.dll   ?= -shared -Zdll
 else
-TOOL_GXX3OMF_LDFLAGS.dll ?= $(TOOL_GXX3OMF_LDFLAGS.$(KBUILD_TARGET))
+ TOOL_GXX3OMF_LDFLAGS.dll   ?= $(TOOL_GXX3OMF_LDFLAGS.$(KBUILD_TARGET))
 endif
 TOOL_GXX3OMF_LDFLAGS.sysmod ?= -nostdlib
-TOOL_GXX3OMF_LD_MAP ?= -Zmap=$(1)
-TOOL_GXX3OMF_LD_SYSMOD_MAP ?= -Zmap=$(1)
-TOOL_GXX3OMF_RC = rc$(HOSTSUFF_EXE)
+TOOL_GXX3OMF_LD_MAP         ?= -Zmap=$(1)
+TOOL_GXX3OMF_LD_SYSMOD_MAP  ?= -Zmap=$(1)
+
+TOOL_GXX3OMF_RC_PREFIX ?= $(TOOL_GXX3OMF_PREFIX)
+TOOL_GXX3OMF_RC_SUFFIX ?= $(TOOL_GXX3OMF_SUFFIX)
+TOOL_GXX3OMF_RC = $(TOOL_GXX3OMF_RC_PREFIX)rc$(TOOL_GXX3OMF_RC_SUFFIX)
 
 ifdef SLKRUNS
-TOOL_GXX3OMF_CC  += -fmessage-length=0
-TOOL_GXX3OMF_CXX += -fmessage-length=0
+ TOOL_GXX3OMF_CC  += -fmessage-length=0
+ TOOL_GXX3OMF_CXX += -fmessage-length=0
 endif
 
Index: /trunk/kBuild/tools/GXX3PLAIN.kmk
===================================================================
--- /trunk/kBuild/tools/GXX3PLAIN.kmk	(revision 3390)
+++ /trunk/kBuild/tools/GXX3PLAIN.kmk	(revision 3391)
@@ -35,13 +35,19 @@
 
 # Tool Specific Properties
-TOOL_GXX3PLAIN_CC  ?= gcc$(HOSTSUFF_EXE)
-TOOL_GXX3PLAIN_CXX ?= g++$(HOSTSUFF_EXE)
-TOOL_GXX3PLAIN_PCH ?= $(TOOL_GXX3PLAIN_CXX)
-TOOL_GXX3PLAIN_AS  ?= gcc$(HOSTSUFF_EXE)
-TOOL_GXX3PLAIN_AR  ?= ar$(HOSTSUFF_EXE)
-TOOL_GXX3PLAIN_RANLIB ?= ranlib$(HOSTSUFF_EXE)
-TOOL_GXX3PLAIN_LD  ?= g++$(HOSTSUFF_EXE)
-TOOL_GXX3PLAIN_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)
-TOOL_GXX3PLAIN_LD_SYSMOD.os2 ?= g++$(HOSTSUFF_EXE)
+ifndef TOOL_GXX3PLAIN_PREFIX
+ TOOL_GXX3PLAIN_PREFIX :=
+endif
+ifndef TOOL_GXX3PLAIN_SUFFIX
+ TOOL_GXX3PLAIN_SUFFIX := $(HOSTSUFF_EXE)
+endif
+TOOL_GXX3PLAIN_CC            ?= $(TOOL_GXX3PLAIN_PREFIX)gcc$(TOOL_GXX3PLAIN_SUFFIX)
+TOOL_GXX3PLAIN_CXX           ?= $(TOOL_GXX3PLAIN_PREFIX)g++$(TOOL_GXX3PLAIN_SUFFIX)
+TOOL_GXX3PLAIN_PCH           ?= $(TOOL_GXX3PLAIN_CXX)
+TOOL_GXX3PLAIN_AS            ?= $(TOOL_GXX3PLAIN_PREFIX)gcc$(TOOL_GXX3PLAIN_SUFFIX)
+TOOL_GXX3PLAIN_AR            ?= $(TOOL_GXX3PLAIN_PREFIX)ar$(TOOL_GXX3PLAIN_SUFFIX)
+TOOL_GXX3PLAIN_RANLIB        ?= $(TOOL_GXX3PLAIN_PREFIX)ranlib$(TOOL_GXX3PLAIN_SUFFIX)
+TOOL_GXX3PLAIN_LD            ?= $(TOOL_GXX3PLAIN_PREFIX)g++$(TOOL_GXX3PLAIN_SUFFIX)
+TOOL_GXX3PLAIN_LD_SYSMOD     ?= $(TOOL_GXX3PLAIN_PREFIX)ld$(TOOL_GXX3PLAIN_SUFFIX)
+TOOL_GXX3PLAIN_LD_SYSMOD.os2 ?= $(TOOL_GXX3PLAIN_PREFIX)g++$(TOOL_GXX3PLAIN_SUFFIX)
 TOOL_GXX3PLAIN_LDFLAGS.dll.os2 ?= -Zdll
 TOOL_GXX3PLAIN_LDFLAGS.dll.darwin ?= -dynamiclib
Index: /trunk/kBuild/tools/GXX42MACHO.kmk
===================================================================
--- /trunk/kBuild/tools/GXX42MACHO.kmk	(revision 3390)
+++ /trunk/kBuild/tools/GXX42MACHO.kmk	(revision 3391)
@@ -35,9 +35,13 @@
 
 # Tool Specific Properties
-TOOL_GXX42MACHO_PREFIX    ?=
-TOOL_GXX42MACHO_SUFFIX    ?= -4.2$(HOSTSUFF_EXE)
+ifndef TOOL_GXX42MACHO_PREFIX
+ TOOL_GXX42MACHO_PREFIX   :=
+endif
+ifndef TOOL_GXX42MACHO_SUFFIX
+ TOOL_GXX42MACHO_SUFFIX   := -4.2$(HOSTSUFF_EXE)
+endif
 TOOL_GXX42MACHO_CC        ?= $(TOOL_GXX42MACHO_PREFIX)gcc$(TOOL_GXX42MACHO_SUFFIX)
 TOOL_GXX42MACHO_CXX       ?= $(TOOL_GXX42MACHO_PREFIX)g++$(TOOL_GXX42MACHO_SUFFIX)
-TOOL_GXX42MACHO_PCH ?= $(TOOL_GXX42MACHO_CXX)
+TOOL_GXX42MACHO_PCH       ?= $(TOOL_GXX42MACHO_CXX)
 TOOL_GXX42MACHO_OBJC      ?= $(TOOL_GXX42MACHO_PREFIX)gcc$(TOOL_GXX42MACHO_SUFFIX)
 TOOL_GXX42MACHO_OBJCXX    ?= $(TOOL_GXX42MACHO_PREFIX)gcc$(TOOL_GXX42MACHO_SUFFIX)
@@ -45,12 +49,10 @@
 TOOL_GXX42MACHO_LD        ?= $(TOOL_GXX42MACHO_PREFIX)g++$(TOOL_GXX42MACHO_SUFFIX)
 TOOL_GXX42MACHO_LD_SYSMOD ?= $(TOOL_GXX42MACHO_PREFIX)g++$(TOOL_GXX42MACHO_SUFFIX)
-ifndef TOOL_GXX42MACHO_LDFLAGS.$(KBUILD_TARGET)
 TOOL_GXX42MACHO_LDFLAGS.dll ?= -dynamiclib
-else
-TOOL_GXX42MACHO_LDFLAGS.dll ?= $(TOOL_GXX42MACHO_LDFLAGS.$(KBUILD_TARGET))
-endif
 TOOL_GXX42MACHO_LDFLAGS.sysmod ?= -r
 #TOOL_GXX42MACHO_LD_SONAME = -Wl,-dylib_install_name $(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
-TOOL_GXX42MACHO_DSYMUTIL  ?= dsymutil
+TOOL_GXX42MACHO_DSYMUTIL_PREFIX ?=
+TOOL_GXX42MACHO_DSYMUTIL_SUFFIX ?= $(HOSTSUFF_EXE)
+TOOL_GXX42MACHO_DSYMUTIL  ?= $(TOOL_GXX42MACHO_DSYMUTIL_PREFIX)dsymutil$(TOOL_GXX42MACHO_DSYMUTIL_SUFFIX)
 
 ifdef SLKRUNS
Index: /trunk/kBuild/tools/GXX4MACHO.kmk
===================================================================
--- /trunk/kBuild/tools/GXX4MACHO.kmk	(revision 3390)
+++ /trunk/kBuild/tools/GXX4MACHO.kmk	(revision 3391)
@@ -35,9 +35,13 @@
 
 # Tool Specific Properties
-TOOL_GXX4MACHO_PREFIX    ?=
-TOOL_GXX4MACHO_SUFFIX    ?= $(HOSTSUFF_EXE)
+ifndef TOOL_GXX4MACHO_PREFIX
+ TOOL_GXX4MACHO_PREFIX   :=
+endif
+ifndef TOOL_GXX4MACHO_SUFFIX
+ TOOL_GXX4MACHO_SUFFIX   := $(HOSTSUFF_EXE)
+endif
 TOOL_GXX4MACHO_CC        ?= $(TOOL_GXX4MACHO_PREFIX)gcc$(TOOL_GXX4MACHO_SUFFIX)
 TOOL_GXX4MACHO_CXX       ?= $(TOOL_GXX4MACHO_PREFIX)g++$(TOOL_GXX4MACHO_SUFFIX)
-TOOL_GXX4MACHO_PCH ?= $(TOOL_GXX4MACHO_CXX)
+TOOL_GXX4MACHO_PCH       ?= $(TOOL_GXX4MACHO_CXX)
 TOOL_GXX4MACHO_OBJC      ?= $(TOOL_GXX4MACHO_PREFIX)gcc$(TOOL_GXX4MACHO_SUFFIX)
 TOOL_GXX4MACHO_OBJCXX    ?= $(TOOL_GXX4MACHO_PREFIX)gcc$(TOOL_GXX4MACHO_SUFFIX)
@@ -45,12 +49,10 @@
 TOOL_GXX4MACHO_LD        ?= $(TOOL_GXX4MACHO_PREFIX)g++$(TOOL_GXX4MACHO_SUFFIX)
 TOOL_GXX4MACHO_LD_SYSMOD ?= $(TOOL_GXX4MACHO_PREFIX)g++$(TOOL_GXX4MACHO_SUFFIX)
-ifndef TOOL_GXX4MACHO_LDFLAGS.$(KBUILD_TARGET)
 TOOL_GXX4MACHO_LDFLAGS.dll ?= -dynamiclib
-else
-TOOL_GXX4MACHO_LDFLAGS.dll ?= $(TOOL_GXX4MACHO_LDFLAGS.$(KBUILD_TARGET))
-endif
 TOOL_GXX4MACHO_LDFLAGS.sysmod ?= -r
 #TOOL_GXX4MACHO_LD_SONAME = -Wl,-dylib_install_name $(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
-TOOL_GXX4MACHO_DSYMUTIL  ?= dsymutil
+TOOL_GXX4MACHO_DSYMUTIL_PREFIX ?=
+TOOL_GXX4MACHO_DSYMUTIL_SUFFIX ?= $(HOSTSUFF_EXE)
+TOOL_GXX4MACHO_DSYMUTIL  ?= $(TOOL_GXX4MACHO_DSYMUTIL_PREFIX)dsymutil$(TOOL_GXX4MACHO_DSYMUTIL_SUFFIX)
 
 ifdef SLKRUNS
Index: /trunk/kBuild/tools/GXX64.kmk
===================================================================
--- /trunk/kBuild/tools/GXX64.kmk	(revision 3390)
+++ /trunk/kBuild/tools/GXX64.kmk	(revision 3391)
@@ -36,32 +36,42 @@
 
 # Tool Specific Properties
-TOOL_GXX64_CC  ?= gcc$(HOSTSUFF_EXE) -m64
-TOOL_GXX64_CXX ?= g++$(HOSTSUFF_EXE) -m64
+ifndef TOOL_GXX64_PREFIX
+ TOOL_GXX64_PREFIX :=
+endif
+ifndef TOOL_GXX64_SUFFIX
+ TOOL_GXX64_SUFFIX := $(HOSTSUFF_EXE)
+endif
+TOOL_GXX64_CC  ?= $(TOOL_GXX64_PREFIX)gcc$(TOOL_GXX64_SUFFIX) -m64
+TOOL_GXX64_CXX ?= $(TOOL_GXX64_PREFIX)g++$(TOOL_GXX64_SUFFIX) -m64
 TOOL_GXX64_PCH ?= $(TOOL_GXX64_CXX)
-TOOL_GXX64_AS  ?= gcc$(HOSTSUFF_EXE) -m64
-TOOL_GXX64_AR  ?= ar$(HOSTSUFF_EXE)
-TOOL_GXX64_LD  ?= g++$(HOSTSUFF_EXE) -m64
-TOOL_GXX64_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)
+TOOL_GXX64_AS  ?= $(TOOL_GXX64_PREFIX)gcc$(TOOL_GXX64_SUFFIX) -m64
+if1of ($(KBUILD_HOST), solaris)
+ TOOL_GXX64_AR ?= $(TOOL_GXX64_PREFIX)gar$(TOOL_GXX64_SUFFIX)
+else
+ TOOL_GXX64_AR ?= $(TOOL_GXX64_PREFIX)ar$(TOOL_GXX64_SUFFIX)
+endif
+TOOL_GXX64_LD  ?= $(TOOL_GXX64_PREFIX)g++$(TOOL_GXX64_SUFFIX) -m64
+TOOL_GXX64_LD_SYSMOD ?= $(TOOL_GXX64_PREFIX)ld$(TOOL_GXX64_SUFFIX)
 ifndef TOOL_GXX64_LDFLAGS.$(KBUILD_TARGET)
-TOOL_GXX64_LDFLAGS.dll ?= -shared
-else
-TOOL_GXX64_LDFLAGS.dll ?= $(TOOL_GXX64_LDFLAGS.$(KBUILD_TARGET))
+ TOOL_GXX64_LDFLAGS.dll ?= -shared
+else
+ TOOL_GXX64_LDFLAGS.dll ?= $(TOOL_GXX64_LDFLAGS.$(KBUILD_TARGET))
 endif
 TOOL_GXX64_LDFLAGS.sysmod ?= -r -m elf_x86_64$(if-expr "$(KBUILD_TARGET)" == "freebsd" || "$(KBUILD_TARGET)" == "gnukfbsd",_fbsd,)
 TOOL_GXX64_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
 ifeq ($(KBUILD_TARGET),os2)
-TOOL_GXX64_LD_MAP ?= -Zmap=$(1)
-else
-TOOL_GXX64_LD_MAP ?=
+ TOOL_GXX64_LD_MAP ?= -Zmap=$(1)
+else
+ TOOL_GXX64_LD_MAP ?=
 endif
 ifeq ($(KBUILD_TARGET),os2)
-TOOL_GXX64_LD_SYSMOD_MAP ?= -Zmap=$(1)
-else
-TOOL_GXX64_LD_SYSMOD_MAP ?=
+ TOOL_GXX64_LD_SYSMOD_MAP ?= -Zmap=$(1)
+else
+ TOOL_GXX64_LD_SYSMOD_MAP ?=
 endif
 if1of ($(KBUILD_HOST), solaris)
- TOOL_GXX64_OBJCOPY ?= gobjcopy$(HOSTSUFF_EXE)
-else
- TOOL_GXX64_OBJCOPY ?= objcopy$(HOSTSUFF_EXE)
+ TOOL_GXX64_OBJCOPY ?= $(TOOL_GXX64_PREFIX)gobjcopy$(TOOL_GXX64_SUFFIX)
+else
+ TOOL_GXX64_OBJCOPY ?= $(TOOL_GXX64_PREFIX)objcopy$(TOOL_GXX64_SUFFIX)
 endif
 
