--- a/build/FreeBSD.gcc.inc
+++ b/build/FreeBSD.gcc.inc
@@ -28,8 +28,8 @@ WARNING_KEY = -Wall
 DYLIB_KEY = -shared
 WARNING_SUPPRESS = -Wno-parentheses
 
-CPLUS = g++ 
-CONLY = gcc
+CPLUS = $(CXX)
+CONLY = $(CC)
 LIB_LINK_FLAGS = -shared
 LIBS = -lpthread 
 C_FLAGS = $(CPLUS_FLAGS)
@@ -42,7 +42,7 @@ ifneq (,$(shell gcc -dumpversion | egrep  "^([6-9])"))
 endif
 
 ifeq ($(cfg), release)
-        CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD
+        CPLUS_FLAGS = -g -DUSE_PTHREAD
 endif
 ifeq ($(cfg), debug)
         CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
@@ -59,22 +59,12 @@ ifeq (ia64,$(arch))
     CPLUS_FLAGS += $(PIC_KEY)
 endif 
 
-ifeq (intel64,$(arch))
-    CPLUS_FLAGS += -m64
-    LIB_LINK_FLAGS += -m64
-endif 
-
-ifeq (ia32,$(arch))
-    CPLUS_FLAGS += -m32
-    LIB_LINK_FLAGS += -m32
-endif 
-
 #------------------------------------------------------------------------------
 # Setting assembler data.
 #------------------------------------------------------------------------------
 ASSEMBLY_SOURCE=$(arch)-gas
 ifeq (ia64,$(arch))
-    ASM=as
+    ASM=$(AS)
     TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
     MALLOC_ASM.OBJ = atomic_support.o lock_byte.o pause.o
 endif 
--- a/build/linux.clang.inc
+++ b/build/linux.clang.inc
@@ -31,15 +31,15 @@ DYLIB_KEY = -shared
 EXPORT_KEY = -Wl,--version-script,
 LIBDL = -ldl
 
-CPLUS = clang++
-CONLY = clang
+CPLUS := $(CXX)
+CONLY := $(CC)
 LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
 LIBS += -lpthread -lrt
 LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
 C_FLAGS = $(CPLUS_FLAGS)
 
 ifeq ($(cfg), release)
-        CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+        CPLUS_FLAGS = $(ITT_NOTIFY) -g -DUSE_PTHREAD
 endif
 ifeq ($(cfg), debug)
         CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
@@ -55,24 +55,10 @@ MALLOC_ASM.OBJ=
 
 ifeq (intel64,$(arch))
     ITT_NOTIFY = -DDO_ITT_NOTIFY
-    CPLUS_FLAGS += -m64
-    LIB_LINK_FLAGS += -m64
 endif
 
 ifeq (ia32,$(arch))
     ITT_NOTIFY = -DDO_ITT_NOTIFY
-    CPLUS_FLAGS += -m32 -march=pentium4
-    LIB_LINK_FLAGS += -m32
-endif
-
-ifeq (ppc64,$(arch))
-    CPLUS_FLAGS += -m64
-    LIB_LINK_FLAGS += -m64
-endif
-
-ifeq (ppc32,$(arch))
-    CPLUS_FLAGS += -m32
-    LIB_LINK_FLAGS += -m32
 endif
 
 ifeq (bg,$(arch))
@@ -84,12 +70,6 @@ endif
 # Setting assembler data.
 #------------------------------------------------------------------------------
 ASM = as
-ifeq (intel64,$(arch))
-    ASM_FLAGS += --64
-endif
-ifeq (ia32,$(arch))
-    ASM_FLAGS += --32
-endif
 ifeq ($(cfg),debug)
     ASM_FLAGS += -g
 endif
--- a/build/linux.gcc.inc
+++ b/build/linux.gcc.inc
@@ -32,12 +32,12 @@ DYLIB_KEY = -shared
 EXPORT_KEY = -Wl,--version-script,
 LIBDL = -ldl
 
-CPLUS = g++
-CONLY = gcc
+CPLUS := $(CXX)
+CONLY := $(CC)
 LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
 LIBS += -lpthread -lrt
 LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
-C_FLAGS = $(CPLUS_FLAGS)
+C_FLAGS := $(CPLUS_FLAGS)
 
 # gcc 4.2 and higher support OpenMP
 ifneq (,$(shell gcc -dumpversion | egrep  "^(4\.[2-9]|[5-9])"))
@@ -57,7 +57,7 @@ ifneq (,$(shell gcc -dumpversion | egrep  "^([6-9])"))
 endif
 
 ifeq ($(cfg), release)
-        CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+        CPLUS_FLAGS = $(ITT_NOTIFY) -g -DUSE_PTHREAD
 endif
 ifeq ($(cfg), debug)
         CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
@@ -73,24 +73,12 @@ endif
 
 ifeq (intel64,$(arch))
     ITT_NOTIFY = -DDO_ITT_NOTIFY
-    CPLUS_FLAGS += -m64 $(RTM_KEY)
-    LIB_LINK_FLAGS += -m64
+    CPLUS_FLAGS += $(RTM_KEY)
 endif
 
 ifeq (ia32,$(arch))
     ITT_NOTIFY = -DDO_ITT_NOTIFY
-    CPLUS_FLAGS += -m32 -march=pentium4 $(RTM_KEY)
-    LIB_LINK_FLAGS += -m32
-endif
-
-ifeq (ppc64,$(arch))
-    CPLUS_FLAGS += -m64
-    LIB_LINK_FLAGS += -m64
-endif
-
-ifeq (ppc32,$(arch))
-    CPLUS_FLAGS += -m32
-    LIB_LINK_FLAGS += -m32
+    CPLUS_FLAGS += $(RTM_KEY)
 endif
 
 ifeq (bg,$(arch))
@@ -98,12 +86,6 @@ ifeq (bg,$(arch))
     CONLY = $(firstword $(notdir $(shell which powerpc{64,32,}-bg{z..a}-linux-gcc 2>/dev/null)))
 endif
 
-# for some gcc versions on Solaris, -m64 may imply V9, but perhaps not everywhere (TODO: verify)
-ifeq (sparc,$(arch))
-    CPLUS_FLAGS    += -mcpu=v9 -m64
-    LIB_LINK_FLAGS += -mcpu=v9 -m64
-endif
-
 # automatically generate "IT" instructions when compiling for Thumb ISA
 ifeq (armv7,$(arch))
     CPLUS_FLAGS    += -Wa,-mimplicit-it=thumb
@@ -112,13 +94,7 @@ endif
 #------------------------------------------------------------------------------
 # Setting assembler data.
 #------------------------------------------------------------------------------
-ASM = as
-ifeq (intel64,$(arch))
-    ASM_FLAGS += --64
-endif
-ifeq (ia32,$(arch))
-    ASM_FLAGS += --32
-endif
+ASM := $(AS)
 ifeq ($(cfg),debug)
     ASM_FLAGS += -g
 endif
