diff --git a/make/crosstool.mk b/make/crosstool.mk
index d0ae3f90..6316fdc9 100644
--- a/make/crosstool.mk
+++ b/make/crosstool.mk
@@ -129,7 +129,7 @@ $(CROSS_BASE)/arm/bre2ze4k:
 
 get-gccversion:
 	@echo ""
-	@$(TARGET_CC) --version
+	@$(TARGET)-gcc --version
 
 # -----------------------------------------------------------------------------
 
diff --git a/make/environment-build.mk b/make/environment-build.mk
index d84a4381..8dc8fca6 100644
--- a/make/environment-build.mk
+++ b/make/environment-build.mk
@@ -232,24 +232,6 @@ TARGET_CPPFLAGS = $(TARGET_CFLAGS)
 TARGET_CXXFLAGS = $(TARGET_CFLAGS)
 TARGET_LDFLAGS  = $(CORTEX-STRINGS_LDFLAG) -Wl,-O1 -Wl,-rpath,$(TARGET_LIB_DIR) -Wl,-rpath-link,$(TARGET_LIB_DIR) -L$(TARGET_LIB_DIR) $(TARGET_EXTRA_LDFLAGS)
 
-TARGET_CROSS    = $(TARGET)-
-
-# Define TARGET_xx variables for all common binutils/gcc
-TARGET_AR       = $(TARGET_CROSS)ar
-TARGET_AS       = $(TARGET_CROSS)as
-TARGET_CC       = $(TARGET_CROSS)gcc
-TARGET_CPP      = $(TARGET_CROSS)cpp
-TARGET_CXX      = $(TARGET_CROSS)g++
-TARGET_LD       = $(TARGET_CROSS)ld
-TARGET_NM       = $(TARGET_CROSS)nm
-TARGET_OBJCOPY  = $(TARGET_CROSS)objcopy
-TARGET_OBJDUMP  = $(TARGET_CROSS)objdump
-TARGET_RANLIB   = $(TARGET_CROSS)ranlib
-TARGET_READELF  = $(TARGET_CROSS)readelf
-TARGET_STRIP    = $(TARGET_CROSS)strip
-
-# -----------------------------------------------------------------------------
-
 VPATH = $(D)
 
 TERM_RED	= \033[40;0;31m
@@ -271,9 +253,7 @@ PKG_CONFIG = $(HOST_DIR)/bin/$(TARGET)-pkg-config
 PKG_CONFIG_LIBDIR = $(TARGET_LIB_DIR)
 PKG_CONFIG_PATH = $(PKG_CONFIG_LIBDIR)/pkgconfig
 
-# -----------------------------------------------------------------------------
-
-# rewrite-"functions"
+# helper-"functions":
 REWRITE_LIBTOOL_RULES  = sed -i \
 				-e "s,^libdir=.*,libdir='$(TARGET_LIB_DIR)'," \
 				-e "s,\(^dependency_libs='\| \|-L\|^dependency_libs='\)/lib,\ $(TARGET_LIB_DIR),g"
@@ -290,59 +270,42 @@ REWRITE_CONFIG_RULES   = sed -i \
 REWRITE_CONFIG         = $(REWRITE_CONFIG_RULES)
 REWRITE_PKGCONF        = $(REWRITE_CONFIG_RULES) $(PKG_CONFIG_PATH)
 
-# -----------------------------------------------------------------------------
-
-# download archives into archives directory
-DOWNLOAD = wget -t3 -T60 -c -P $(ARCHIVE)
-
-# unpack archives into build directory
+# unpack tarballs, clean up
 UNTAR = tar -C $(BUILD_TMP) -xf $(ARCHIVE)
 UNZIP = unzip -d $(BUILD_TMP) -o $(ARCHIVE)
-
-# clean up
 REMOVE = rm -rf $(BUILD_TMP)
-
-# apply patches
 PATCH = patch -p1 -i $(PATCHES)
 
-# build helper variables
+# download tarballs into archive directory
+DOWNLOAD = wget -t3 -T60 -c -P $(ARCHIVE)
+
 CD    = set -e; cd
 CHDIR = $(CD) $(BUILD_TMP)
 MKDIR = mkdir -p $(BUILD_TMP)
 CPDIR = cp -a -t $(BUILD_TMP) $(ARCHIVE)
 TOUCH = @touch $@
+STRIP = $(TARGET)-strip
 
 # empty variable EMPTY for smoother comparisons
 EMPTY =
 
-# -----------------------------------------------------------------------------
-
-MAKE_OPTS = \
-	CROSS_COMPILE="$(TARGET_CROSS)" \
-	CC="$(TARGET_CC)" \
-	GCC="$(TARGET_CC)" \
-	CPP="$(TARGET_CPP)" \
-	CXX="$(TARGET_CXX)" \
-	LD="$(TARGET_LD)" \
-	AR="$(TARGET_AR)" \
-	AS="$(TARGET_AS)" \
-	NM="$(TARGET_NM)" \
-	OBJCOPY="$(TARGET_OBJCOPY)" \
-	OBJDUMP="$(TARGET_OBJDUMP)" \
-	RANLIB="$(TARGET_RANLIB)" \
-	READELF="$(TARGET_READELF)" \
-	STRIP="$(TARGET_STRIP)" \
-	ARCH=$(BOXARCH)
-
 BUILDENV = \
-	$(MAKE_OPTS) \
-	\
+	CC=$(TARGET)-gcc \
+	CXX=$(TARGET)-g++ \
+	LD=$(TARGET)-ld \
+	NM=$(TARGET)-nm \
+	AR=$(TARGET)-ar \
+	AS=$(TARGET)-as \
+	LDD=$(TARGET)-ldd \
+	RANLIB=$(TARGET)-ranlib \
+	STRIP=$(TARGET)-strip \
+	OBJCOPY=$(TARGET)-objcopy \
+	OBJDUMP=$(TARGET)-objdump \
+	READELF=$(TARGET)-readelf \
 	CFLAGS="$(TARGET_CFLAGS)" \
 	CPPFLAGS="$(TARGET_CPPFLAGS)" \
 	CXXFLAGS="$(TARGET_CXXFLAGS)" \
 	LDFLAGS="$(TARGET_LDFLAGS)" \
-
-BUILDENV += \
 	PKG_CONFIG=$(PKG_CONFIG) \
 	PKG_CONFIG_PATH=$(PKG_CONFIG_PATH)
 
@@ -355,8 +318,6 @@ CONFIGURE = \
 	$(BUILDENV) \
 	./configure $(CONFIGURE_OPTS)
 
-# -----------------------------------------------------------------------------
-
 CMAKE_OPTS = \
 	-DBUILD_SHARED_LIBS=ON \
 	-DENABLE_STATIC=OFF \
@@ -368,28 +329,21 @@ CMAKE_OPTS = \
 	-DCMAKE_INSTALL_MANDIR="$(remove-mandir)" \
 	-DCMAKE_PREFIX_PATH="$(TARGET_DIR)" \
 	-DCMAKE_INCLUDE_PATH="$(TARGET_INCLUDE_DIR)" \
-	-DCMAKE_C_COMPILER="$(TARGET_CC)" \
+	-DCMAKE_C_COMPILER="$(TARGET)-gcc" \
 	-DCMAKE_C_FLAGS="$(TARGET_CFLAGS) -DNDEBUG" \
-	-DCMAKE_CPP_COMPILER="$(TARGET_CPP)" \
-	-DCMAKE_CPP_FLAGS="$(TARGET_CFLAGS) -DNDEBUG" \
-	-DCMAKE_CXX_COMPILER="$(TARGET_CXX)" \
+	-DCMAKE_CXX_COMPILER="$(TARGET)-g++" \
 	-DCMAKE_CXX_FLAGS="$(TARGET_CFLAGS) -DNDEBUG" \
-	-DCMAKE_LINKER="$(TARGET_LD)" \
-	-DCMAKE_AR="$(TARGET_AR)" \
-	-DCMAKE_AS="$(TARGET_AS)" \
-	-DCMAKE_NM="$(TARGET_NM)" \
-	-DCMAKE_OBJCOPY="$(TARGET_OBJCOPY)" \
-	-DCMAKE_OBJDUMP="$(TARGET_OBJDUMP)" \
-	-DCMAKE_RANLIB="$(TARGET_RANLIB)" \
-	-DCMAKE_READELF="$(TARGET_READELF)" \
-	-DCMAKE_STRIP="$(TARGET_STRIP)"
+	-DCMAKE_LINKER="$(TARGET)-ld" \
+	-DCMAKE_AR="$(TARGET)-ar" \
+	-DCMAKE_NM="$(TARGET)-nm" \
+	-DCMAKE_OBJDUMP="$(TARGET)-objdump" \
+	-DCMAKE_RANLIB="$(TARGET)-ranlib" \
+	-DCMAKE_STRIP="$(TARGET)-strip"
 
 CMAKE = \
 	rm -f CMakeCache.txt; \
 	cmake --no-warn-unused-cli $(CMAKE_OPTS)
 
-# -----------------------------------------------------------------------------
-
 GITHUB			= https://github.com
 BITBUCKET		= https://bitbucket.org
 BITBUCKET_SSH		= git@bitbucket.org
diff --git a/make/host-tools.mk b/make/host-tools.mk
index 0ce5347f..4b9e9b2d 100644
--- a/make/host-tools.mk
+++ b/make/host-tools.mk
@@ -310,8 +310,8 @@ HOST_LUAROCKS_CONFIG_FILE = $(HOST_DIR)/etc/luarocks/config-$(LUA_ABIVER).lua
 
 HOST_LUAROCKS_BUILDENV = \
 	LUA_PATH="$(HOST_DIR)/share/lua/$(LUA_ABIVER)/?.lua" \
-	TARGET_CC="$(TARGET_CC)" \
-	TARGET_LD="$(TARGET_LD)" \
+	TARGET_CC="$(TARGET)-gcc" \
+	TARGET_LD="$(TARGET)-ld" \
 	TARGET_CFLAGS="$(TARGET_CFLAGS) -fPIC" \
 	TARGET_LDFLAGS="-L$(TARGET_LIB_DIR)" \
 	TARGET_DIR="$(TARGET_DIR)" \
@@ -346,8 +346,8 @@ host-ccache: find-ccache $(CCACHE) $(HOST_DIR)/bin
 	@ln -sf $(CCACHE) $(HOST_DIR)/bin/cc
 	@ln -sf $(CCACHE) $(HOST_DIR)/bin/gcc
 	@ln -sf $(CCACHE) $(HOST_DIR)/bin/g++
-	@ln -sf $(CCACHE) $(HOST_DIR)/bin/$(TARGET_CC)
-	@ln -sf $(CCACHE) $(HOST_DIR)/bin/$(TARGET_CXX)
+	@ln -sf $(CCACHE) $(HOST_DIR)/bin/$(TARGET)-gcc
+	@ln -sf $(CCACHE) $(HOST_DIR)/bin/$(TARGET)-g++
 
 # -----------------------------------------------------------------------------
 
diff --git a/make/image-updates.mk b/make/image-updates.mk
index fbbe9176..eec1b294 100644
--- a/make/image-updates.mk
+++ b/make/image-updates.mk
@@ -42,7 +42,7 @@ u-neutrino: neutrino-clean
 	install -D -m 0644 $(TARGET_SHARE_DIR)/tuxbox/neutrino/locale/deutsch.locale $(UPDATE_INST_DIR)/share/tuxbox/neutrino/locale/deutsch.locale
 	install -D -m 0644 $(TARGET_SHARE_DIR)/tuxbox/neutrino/locale/english.locale $(UPDATE_INST_DIR)/share/tuxbox/neutrino/locale/english.locale
 ifneq ($(DEBUG), yes)
-	find $(UPDATE_INST_DIR)/bin -type f ! -name *.sh -print0 | xargs -0 $(TARGET_STRIP) || true
+	find $(UPDATE_INST_DIR)/bin -type f ! -name *.sh -print0 | xargs -0 $(TARGET)-strip || true
 endif
 	$(MAKE) u-update-bin \
 			UPDATE_MD5FILE=$(UPDATE_MD5FILE-BOXSERIES)
@@ -56,7 +56,7 @@ u-neutrino-full: neutrino-clean
 	$(MAKE) neutrino N_INST_DIR=$(UPDATE_INST_DIR)
 	install -D -m 0755 $(TARGET_DIR)/etc/init.d/start_neutrino $(UPDATE_INST_DIR)/etc/init.d/start_neutrino
 ifneq ($(DEBUG), yes)
-	find $(UPDATE_INST_DIR)/bin -type f ! -name *.sh -print0 | xargs -0 $(TARGET_STRIP) || true
+	find $(UPDATE_INST_DIR)/bin -type f ! -name *.sh -print0 | xargs -0 $(TARGET)-strip || true
 endif
 ifeq ($(BOXSERIES), hd2)
 	# avoid overrides in user's var-partition
diff --git a/make/linux-kernel.mk b/make/linux-kernel.mk
index bfbef2e2..09e8ad68 100644
--- a/make/linux-kernel.mk
+++ b/make/linux-kernel.mk
@@ -32,7 +32,7 @@ endif
 
 KERNEL_MAKEVARS := \
 	ARCH=$(BOXARCH) \
-	CROSS_COMPILE=$(TARGET_CROSS) \
+	CROSS_COMPILE=$(TARGET)- \
 	INSTALL_MOD_PATH=$(BUILD_TMP)/$(KERNEL_MODULES) \
 	LOCALVERSION= \
 	O=$(BUILD_TMP)/$(KERNEL_OBJ)
@@ -136,7 +136,7 @@ STRIP-MODULES-COOLSTREAM-HD1 += kernel/fs/fuse/fuse.ko
 $(D)/kernel-modules-coolstream-hd1: $(D)/kernel-coolstream
 	for module in $(STRIP-MODULES-COOLSTREAM-HD1); do \
 		mkdir -p $(TARGET_MODULES_DIR)/$$(dirname "$$module"); \
-		$(TARGET_OBJCOPY) --strip-unneeded $(KERNEL_MODULES_DIR)/$$module $(TARGET_MODULES_DIR)/$$module; \
+		$(TARGET)-objcopy --strip-unneeded $(KERNEL_MODULES_DIR)/$$module $(TARGET_MODULES_DIR)/$$module; \
 	done;
 	rm -f $(TARGET_MODULES_DIR)/usb-storage.ko # already builtin
 	make depmod
diff --git a/make/neutrino.mk b/make/neutrino.mk
index addec684..a18c8478 100644
--- a/make/neutrino.mk
+++ b/make/neutrino.mk
@@ -111,14 +111,22 @@ N_WEATHER_DEV_KEY ?=
 # -----------------------------------------------------------------------------
 
 N_BUILDENV = \
-	$(MAKE_OPTS) \
-	\
+	CC=$(TARGET)-gcc \
+	CXX=$(TARGET)-g++ \
+	LD=$(TARGET)-ld \
+	NM=$(TARGET)-nm \
+	AR=$(TARGET)-ar \
+	AS=$(TARGET)-as \
+	LDD=$(TARGET)-ldd \
+	RANLIB=$(TARGET)-ranlib \
+	STRIP=$(TARGET)-strip \
+	OBJCOPY=$(TARGET)-objcopy \
+	OBJDUMP=$(TARGET)-objdump \
+	READELF=$(TARGET)-readelf \
 	CFLAGS="$(N_CFLAGS)" \
 	CPPFLAGS="$(N_CFLAGS)" \
 	CXXFLAGS="$(N_CFLAGS) -std=c++11" \
-	LDFLAGS="$(N_LDFLAGS)"
-
-N_BUILDENV += \
+	LDFLAGS="$(N_LDFLAGS)" \
 	PKG_CONFIG=$(PKG_CONFIG) \
 	PKG_CONFIG_PATH=$(PKG_CONFIG_PATH)
 
@@ -238,7 +246,7 @@ endif
 	$(MAKE) -C $(N_OBJ_DIR) all DESTDIR=$(TARGET_DIR)
 	install -D -m 0755 $(N_OBJ_DIR)/src/neutrino $(TARGET_DIR)/bin/neutrino
 ifneq ($(DEBUG), yes)
-	$(TARGET_STRIP) $(TARGET_DIR)/bin/neutrino
+	$(TARGET)-strip $(TARGET_DIR)/bin/neutrino
 endif
 	make done
 
diff --git a/make/target-development.mk b/make/target-development.mk
index 13e88608..7db42ae3 100644
--- a/make/target-development.mk
+++ b/make/target-development.mk
@@ -27,7 +27,7 @@ $(D)/valgrind3: $(ARCHIVE)/$(VALGRIND_SOURCE) | $(TARGET_DIR)
 	$(UNTAR)/$(VALGRIND_SOURCE)
 	$(CHDIR)/$(VALGRIND_TMP); \
 		$(call apply_patches, $(VALGRIND_PATCH)); \
-		export AR=$(TARGET_AR); \
+		export AR=$(TARGET)-ar; \
 		autoreconf -fi; \
 		$(CONFIGURE) \
 			--prefix= \
diff --git a/make/target-ffmpeg-armbox.mk b/make/target-ffmpeg-armbox.mk
index 47612f9c..0ffe5ad0 100644
--- a/make/target-ffmpeg-armbox.mk
+++ b/make/target-ffmpeg-armbox.mk
@@ -34,7 +34,7 @@ FFMPEG_DEPS = $(D)/openssl $(D)/freetype $(D)/librtmp $(D)/libbluray $(D)/libass
 
 FFMPEG_CONFIGURE_GENERIC = \
 			--prefix=/ \
-			--cross-prefix=$(TARGET_CROSS) \
+			--cross-prefix=$(TARGET)- \
 			--datadir=$(remove-datadir) \
 			\
 			--disable-doc \
diff --git a/make/target-ffmpeg-coolstream.mk b/make/target-ffmpeg-coolstream.mk
index 49e26f7c..32eb9eb0 100644
--- a/make/target-ffmpeg-coolstream.mk
+++ b/make/target-ffmpeg-coolstream.mk
@@ -21,7 +21,7 @@ endif
 
 FFMPEG_CONFIGURE_GENERIC = \
 			--prefix=/ \
-			--cross-prefix=$(TARGET_CROSS) \
+			--cross-prefix=$(TARGET)- \
 			--datadir=$(remove-datadir) \
 			\
 			--disable-doc \
diff --git a/make/target-gstreamer-unused.mk b/make/target-gstreamer-unused.mk
index 4eaef7ab..1bf98296 100644
--- a/make/target-gstreamer-unused.mk
+++ b/make/target-gstreamer-unused.mk
@@ -361,7 +361,7 @@ $(D)/gst_libav: $(ARCHIVE)/$(GST_LIBAV_SOURCE) $(D)/gstreamer $(D)/gst-plugins-b
 			--enable-cross-compile \
 			--target-os=linux \
 			--arch=$(BOXARCH) \
-			--cross-prefix=$(TARGET_CROSS) \
+			--cross-prefix=$(TARGET)- \
 			\
 			--disable-muxers \
 			--disable-encoders \
diff --git a/make/target-libs.mk b/make/target-libs.mk
index 82c2bd64..82705d20 100644
--- a/make/target-libs.mk
+++ b/make/target-libs.mk
@@ -315,7 +315,7 @@ $(D)/libjpeg-turbo: $(ARCHIVE)/$(LIBJPEG-TURBO_SOURCE) | $(TARGET_DIR)
 	$(REMOVE)/$(LIBJPEG-TURBO_TMP)
 	$(UNTAR)/$(LIBJPEG-TURBO_SOURCE)
 	$(CHDIR)/$(LIBJPEG-TURBO_TMP); \
-		export CC=$(TARGET_CC); \
+		export CC=$(TARGET)-gcc; \
 		$(CONFIGURE) \
 			--prefix= \
 			--enable-shared \
@@ -371,9 +371,11 @@ $(ARCHIVE)/$(OPENSSL_SOURCE):
 
 OPENSSL_PATCH  = openssl-add-ni-specific-target.patch
 
-OPENSSL_FLAGS = $(MAKE_OPTS) \
-		AR="$(TARGET_AR) r" \
-		MAKEDEPPROG=$(TARGET_CC) \
+OPENSSL_FLAGS = CC=$(TARGET)-gcc \
+		LD=$(TARGET)-ld \
+		AR="$(TARGET)-ar r" \
+		RANLIB=$(TARGET)-ranlib \
+		MAKEDEPPROG=$(TARGET)-gcc \
 		NI_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \
 		PROCESSOR=ARM
 
@@ -575,7 +577,7 @@ $(D)/libdpf: $(D)/libusb-compat | $(TARGET_DIR)
 	$(CPDIR)/$(LIBDPF_SOURCE)
 	$(CHDIR)/$(LIBDPF_TMP)/dpflib; \
 		$(call apply_patches, $(LIBDPF_PATCH)); \
-		make libdpf.a CC=$(TARGET_CC) PREFIX=$(TARGET_DIR); \
+		make libdpf.a CC=$(TARGET)-gcc PREFIX=$(TARGET_DIR); \
 		mkdir -p $(TARGET_INCLUDE_DIR)/libdpf; \
 		cp dpf.h $(TARGET_INCLUDE_DIR)/libdpf/libdpf.h; \
 		cp ../include/spiflash.h $(TARGET_INCLUDE_DIR)/libdpf/; \
@@ -950,7 +952,7 @@ $(D)/librtmp: $(D)/zlib $(D)/openssl $(SOURCE_DIR)/$(NI-RTMPDUMP) | $(TARGET_DIR
 	$(REMOVE)/$(NI-RTMPDUMP)
 	tar -C $(SOURCE_DIR) -cp $(NI-RTMPDUMP) --exclude-vcs | tar -C $(BUILD_TMP) -x
 	$(CHDIR)/$(NI-RTMPDUMP); \
-		make CROSS_COMPILE=$(TARGET_CROSS) XCFLAGS="-I$(TARGET_INCLUDE_DIR) -L$(TARGET_LIB_DIR)" LDFLAGS="-L$(TARGET_LIB_DIR)" prefix=$(TARGET_DIR);\
+		make CROSS_COMPILE=$(TARGET)- XCFLAGS="-I$(TARGET_INCLUDE_DIR) -L$(TARGET_LIB_DIR)" LDFLAGS="-L$(TARGET_LIB_DIR)" prefix=$(TARGET_DIR);\
 		make install DESTDIR=$(TARGET_DIR) prefix="" mandir=$(remove-mandir)
 	rm -rf $(TARGET_DIR)/sbin/rtmpgw
 	rm -rf $(TARGET_DIR)/sbin/rtmpsrv
diff --git a/make/target-lua.mk b/make/target-lua.mk
index 97e53d84..2a446563 100644
--- a/make/target-lua.mk
+++ b/make/target-lua.mk
@@ -28,10 +28,11 @@ $(D)/lua: $(D)/ncurses $(ARCHIVE)/$(LUA_SOURCE) | $(TARGET_DIR)
 		sed -i 's/^R=.*/R= $(LUA_VER)/' etc/lua.pc; \
 		$(MAKE) linux \
 			PKG_VERSION=$(LUA_VER) \
-			$(MAKE_OPTS) \
-			AR="$(TARGET_AR) rcu" \
-			LDFLAGS="$(TARGET_LDFLAGS)"
-			; \
+			CC="$(TARGET)-gcc" \
+			LD="$(TARGET)-ld" \
+			AR="$(TARGET)-ar rcu" \
+			RANLIB=$(TARGET)-ranlib \
+			LDFLAGS="$(TARGET_LDFLAGS)"; \
 		$(MAKE) install INSTALL_TOP=$(TARGET_DIR)
 	install -D -m 0755 $(BUILD_TMP)/$(LUA_TMP)/src/liblua.so.$(LUA_VER) $(TARGET_LIB_DIR)/liblua.so.$(LUA_VER)
 	ln -sf liblua.so.$(LUA_VER) $(TARGET_LIB_DIR)/liblua.so
diff --git a/make/target-rootfs.mk b/make/target-rootfs.mk
index b45aae89..5db27d44 100644
--- a/make/target-rootfs.mk
+++ b/make/target-rootfs.mk
@@ -133,17 +133,17 @@ ifneq ($(DEBUG), yes)
 	$(call draw_line);
 	@echo "The following warnings from strip are harmless!"
 	$(call draw_line);
-	find $(ROOTFS)/bin -type f -print0 | xargs -0 $(TARGET_STRIP) || true
-	find $(ROOTFS)/sbin -type f -print0 | xargs -0 $(TARGET_STRIP) || true
+	find $(ROOTFS)/bin -type f -print0 | xargs -0 $(TARGET)-strip || true
+	find $(ROOTFS)/sbin -type f -print0 | xargs -0 $(TARGET)-strip || true
 	find $(ROOTFS)/lib \( \
 			-path $(ROOTFS)/lib/libnexus.so -o \
 			-path $(ROOTFS)/lib/libnxpl.so -o \
 			-path $(ROOTFS)/lib/libv3ddriver.so -o \
 			\
 			-path $(ROOTFS)/lib/modules \) -prune -o \
-	-type f -print0 | xargs -0 $(TARGET_STRIP) || true
+	-type f -print0 | xargs -0 $(TARGET)-strip || true
   ifeq ($(BOXSERIES), hd2)
-	find $(ROOTFS)/lib/modules/$(KERNEL_VERSION)/kernel -type f -name '*.ko' | xargs -n 1 $(TARGET_OBJCOPY) --strip-unneeded
+	find $(ROOTFS)/lib/modules/$(KERNEL_VERSION)/kernel -type f -name '*.ko' | xargs -n 1 $(TARGET)-objcopy --strip-unneeded
   endif
 	@echo -e "$(TERM_YELLOW)"
 	@du -sh $(ROOTFS)
diff --git a/make/target-tools-unused.mk b/make/target-tools-unused.mk
index 2a4fbee1..eb76af18 100644
--- a/make/target-tools-unused.mk
+++ b/make/target-tools-unused.mk
@@ -155,8 +155,8 @@ $(D)/iozone3: $(ARCHIVE)/$(IOZONE_SOURCE) | $(TARGET_DIR)
 	$(REMOVE)/$(IOZONE_TMP)
 	$(UNTAR)/$(IOZONE_SOURCE)
 	$(CHDIR)/$(IOZONE_TMP)/src/current; \
-		sed -i -e "s/= gcc/= $(TARGET_CC)/" makefile; \
-		sed -i -e "s/= cc/= $(TARGET_CC)/" makefile; \
+		sed -i -e "s/= gcc/= $(TARGET)-gcc/" makefile; \
+		sed -i -e "s/= cc/= $(TARGET)-cc/" makefile; \
 		$(BUILDENV) \
 		$(MAKE) linux-arm; \
 		install -m 0755 iozone $(TARGET_BIN_DIR)/
diff --git a/make/target-tools.mk b/make/target-tools.mk
index 8896ea36..35af2c79 100644
--- a/make/target-tools.mk
+++ b/make/target-tools.mk
@@ -31,7 +31,11 @@ BUSYBOX_MAKE_ENV = \
 	CFLAGS_busybox="$(BUSYBOX_CFLAGS_busybox)"
 
 BUSYBOX_MAKE_OPTS = \
-	$(MAKE_OPTS) \
+	CC="$(TARGET)-gcc" \
+	LD="$(TARGET)-ld" \
+	AR="$(TARGET)-ar" \
+	RANLIB="$(TARGET)-ranlib" \
+	CROSS_COMPILE="$(TARGET)-" \
 	CFLAGS_EXTRA="$(TARGET_CFLAGS)" \
 	EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
 	CONFIG_PREFIX="$(TARGET_DIR)"
@@ -469,7 +473,7 @@ $(D)/ushare: $(D)/libupnp $(ARCHIVE)/$(USHARE_SOURCE)| $(TARGET_DIR)
 			--disable-dlna \
 			--disable-nls \
 			--cross-compile \
-			--cross-prefix=$(TARGET_CROSS) \
+			--cross-prefix=$(TARGET)- \
 			; \
 		sed -i config.h -e 's@SYSCONFDIR.*@SYSCONFDIR "/etc"@'; \
 		sed -i config.h -e 's@LOCALEDIR.*@LOCALEDIR "/share"@'; \
@@ -811,7 +815,7 @@ $(D)/autofs: $(D)/libtirpc $(ARCHIVE)/$(AUTOFS_SOURCE) | $(TARGET_DIR)
 		export ac_cv_linux_procfs=yes; \
 		export ac_cv_path_KRB5_CONFIG=no; \
 		export ac_cv_path_MODPROBE=/sbin/modprobe; \
-		export ac_cv_path_RANLIB=$(TARGET_RANLIB); \
+		export ac_cv_path_RANLIB=$(TARGET)-ranlib; \
 		autoreconf -fi; \
 		$(CONFIGURE) \
 			--prefix= \
@@ -1095,7 +1099,7 @@ $(D)/fbshot: $(D)/libpng $(ARCHIVE)/$(FBSHOT_SOURCE) | $(TARGET_DIR)
 	$(UNTAR)/$(FBSHOT_SOURCE)
 	$(CHDIR)/$(FBSHOT_TMP); \
 		$(call apply_patches, $(FBSHOT_PATCH)); \
-		sed -i 's|	gcc |	$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) |' Makefile; \
+		sed -i 's|	gcc |	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) |' Makefile; \
 		sed -i '/strip fbshot/d' Makefile; \
 		$(MAKE) all; \
 		install -D -m 0755 fbshot $(TARGET_DIR)/bin/fbshot
@@ -1196,7 +1200,7 @@ $(D)/xupnpd: $(D)/lua $(D)/openssl | $(TARGET_DIR)
 		$(call apply_patches, $(XUPNPD_PATCH))
 	$(CHDIR)/$(XUPNPD_TMP)/src; \
 		$(BUILDENV) \
-		$(MAKE) embedded TARGET=$(TARGET) CC=$(TARGET_CC) STRIP=$(TARGET_STRIP) LUAFLAGS="$(TARGET_LDFLAGS) -I$(TARGET_INCLUDE_DIR)"; \
+		$(MAKE) embedded TARGET=$(TARGET) CC=$(TARGET)-gcc STRIP=$(TARGET)-strip LUAFLAGS="$(TARGET_LDFLAGS) -I$(TARGET_INCLUDE_DIR)"; \
 		install -D -m 0755 xupnpd $(TARGET_BIN_DIR)/; \
 		install -d $(TARGET_SHARE_DIR)/xupnpd/config; \
 		cp -a plugins profiles ui www *.lua $(TARGET_SHARE_DIR)/xupnpd/
@@ -1653,8 +1657,8 @@ $(D)/gptfdisk: $(D)/popt $(D)/e2fsprogs $(ARCHIVE)/$(GPTFDISK_SOURCE) | $(TARGET
 	$(UNTAR)/$(GPTFDISK_SOURCE)
 	$(CHDIR)/$(GPTFDISK_TMP); \
 		$(call apply_patches, $(GPTFDISK_PATCH)); \
-		sed -i 's|^CC=.*|CC=$(TARGET_CC)|' Makefile; \
-		sed -i 's|^CXX=.*|CXX=$(TARGET_CXX)|' Makefile; \
+		sed -i 's|^CC=.*|CC=$(TARGET)-gcc|' Makefile; \
+		sed -i 's|^CXX=.*|CXX=$(TARGET)-g++|' Makefile; \
 		$(BUILDENV) \
 		$(MAKE) sgdisk; \
 		install -D -m 0755 sgdisk $(TARGET_DIR)/sbin/sgdisk