diff --git a/openwrt/include/kernel-build.mk b/openwrt/include/kernel-build.mk
index 38ea9a18eb951d34f38b6f4ec01fbc3f046384cd..e3f2d5daedbea9145d028303ed319d143e0a1d62 100644
--- a/openwrt/include/kernel-build.mk
+++ b/openwrt/include/kernel-build.mk
@@ -66,7 +66,7 @@ else
 endif
 
 $(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.linux-compile pkg-install ramdisk-config
-	$(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH)
+	$(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH="$(TARGET_PATH)"
 
 $(LINUX_KERNEL): $(LINUX_DIR)/vmlinux
 	$(KERNEL_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@
@@ -75,7 +75,7 @@ $(LINUX_KERNEL): $(LINUX_DIR)/vmlinux
 $(LINUX_DIR)/.modules_done:
 	rm -rf $(KERNEL_BUILD_DIR)/modules
 	$(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH="$(TARGET_PATH)" modules
-	$(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) DEPMOD=true INSTALL_MOD_PATH=$(KERNEL_BUILD_DIR)/modules modules_install
+	$(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH="$(TARGET_PATH)" DEPMOD=true INSTALL_MOD_PATH=$(KERNEL_BUILD_DIR)/modules modules_install
 	touch $(LINUX_DIR)/.modules_done
 
 modules: $(LINUX_DIR)/.modules_done
diff --git a/openwrt/include/package.mk b/openwrt/include/package.mk
index c0953ae701af43b5c182dbe039b5f41b5b8ced8d..fee715043c893ee6035d179ab3b6ce8ea0a0612a 100644
--- a/openwrt/include/package.mk
+++ b/openwrt/include/package.mk
@@ -285,7 +285,6 @@ endef
 define Build/Compile/Default
 	$(MAKE) -C $(PKG_BUILD_DIR) \
 		$(TARGET_CONFIGURE_OPTS) \
-		CC=$(TARGET_CC) \
 		CROSS="$(TARGET_CROSS)" \
 		EXTRA_CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include" \
 		ARCH="$(ARCH)" \
diff --git a/openwrt/package/dnsmasq/Makefile b/openwrt/package/dnsmasq/Makefile
index 0efb349bc8c26ab6d70fd7b86489fc71f7a6f518..f6c2d36c52b53040708390d52db3e0514942c635 100644
--- a/openwrt/package/dnsmasq/Makefile
+++ b/openwrt/package/dnsmasq/Makefile
@@ -36,7 +36,7 @@ endef
 
 define Build/Compile
 	$(MAKE) -C $(PKG_BUILD_DIR) \
-		CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \
+		$(TARGET_CONFIGURE_OPTS) \
 		BINDIR="/usr/sbin" MANDIR="/usr/man" \
 		all
 endef
diff --git a/openwrt/package/dropbear/Makefile b/openwrt/package/dropbear/Makefile
index 48e69e466f729aeed95bdacecce65ca9fda338eb..cfb2c4135e6a6442514dc90987d4bc58882fce28 100644
--- a/openwrt/package/dropbear/Makefile
+++ b/openwrt/package/dropbear/Makefile
@@ -81,11 +81,11 @@ endef
 
 define Build/Compile
 	$(MAKE) -C $(PKG_BUILD_DIR) \
-		LD="$(TARGET_CC)" \
+		$(TARGET_CONFIGURE_OPTS) \
 		PROGRAMS="dropbear dbclient dropbearkey scp" \
 		MULTI=1 SCPPROGRESS=1
 	$(MAKE) -C $(PKG_BUILD_DIR) \
-		LD="$(TARGET_CC)" \
+		$(TARGET_CONFIGURE_OPTS) \
 		PROGRAMS="dropbearconvert"
 endef
 	
diff --git a/openwrt/package/libpcap/Makefile b/openwrt/package/libpcap/Makefile
index 1d9d4371fb3f34fe6d0f31ec749916b6634d96ab..155748a4728fdefb4fcd01d38b4711beb890124d 100644
--- a/openwrt/package/libpcap/Makefile
+++ b/openwrt/package/libpcap/Makefile
@@ -71,6 +71,7 @@ define Build/Compile
 	mkdir -p $(PKG_INSTALL_DIR)
 	$(MAKE) -C $(PKG_BUILD_DIR) \
 		CCOPT="$(TARGET_CFLAGS) -I$(BUILD_DIR)/linux/include" \
+		PATH=$(TARGET_PATH) \
 		DESTDIR="$(PKG_INSTALL_DIR)" \
 		all install
 endef
diff --git a/openwrt/package/linux-atm/Makefile b/openwrt/package/linux-atm/Makefile
index 0b8c59d4e157d22f54114f03bc2fbafb39914ab0..56ca90a383788fc331016b158184efe94700b148 100644
--- a/openwrt/package/linux-atm/Makefile
+++ b/openwrt/package/linux-atm/Makefile
@@ -44,11 +44,7 @@ define Build/Configure
 endef
 
 define Build/Compile
-	rm -rf $(PKG_INSTALL_DIR)
-	mkdir -p $(PKG_INSTALL_DIR)
-	$(MAKE) -C $(PKG_BUILD_DIR) \
-		DESTDIR="$(PKG_INSTALL_DIR)" \
-		all install
+	$(call Build/Compile/Default,DESTDIR="$(PKG_INSTALL_DIR)" all install)
 endef
 
 define Package/linux-atm/install
diff --git a/openwrt/package/mtd/Makefile b/openwrt/package/mtd/Makefile
index b3bf6023afa09da58e1a930c2b782b8f64b17a92..01b9adf98f260d224f4139f70971f0291ce92c5e 100644
--- a/openwrt/package/mtd/Makefile
+++ b/openwrt/package/mtd/Makefile
@@ -29,12 +29,6 @@ define Build/Prepare
 	$(CP) ./src/* $(PKG_BUILD_DIR)/
 endef
 
-define Build/Compile
-	$(MAKE) -C $(PKG_BUILD_DIR) \
-		CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \
-		all
-endef
-
 define Package/mtd/install
 	install -d -m0755 $(1)/sbin
 	install -m0755 $(PKG_BUILD_DIR)/mtd $(1)/sbin/
diff --git a/openwrt/package/ppp/Makefile b/openwrt/package/ppp/Makefile
index a42af41d31f2cc9d975a3cf459a1f620cfd6f74e..64351a5ca1f345e5c55ebda317968f7a16a07337 100644
--- a/openwrt/package/ppp/Makefile
+++ b/openwrt/package/ppp/Makefile
@@ -87,7 +87,7 @@ define Build/Compile
 	rm -rf $(PKG_INSTALL_DIR)
 	mkdir -p $(PKG_INSTALL_DIR)/usr
 	$(MAKE) -C $(PKG_BUILD_DIR) \
-		CC="$(TARGET_CC)" \
+		$(TARGET_CONFIGURE_OPTS) \
 		COPTS="$(TARGET_CFLAGS)" \
 		PRECOMPILED_FILTER=1 \
 		STAGING_DIR="$(STAGING_DIR)" \
diff --git a/openwrt/package/wireless-tools/Makefile b/openwrt/package/wireless-tools/Makefile
index 58844248763eb1d811ead17b9a3e773c5a02fa17..32e7fc05a94210b5d0b795f31e8a7629db1104d7 100644
--- a/openwrt/package/wireless-tools/Makefile
+++ b/openwrt/package/wireless-tools/Makefile
@@ -35,7 +35,8 @@ define Build/Compile
 	rm -rf $(PKG_INSTALL_DIR)
 	mkdir -p $(PKG_INSTALL_DIR)
 	$(MAKE) -C $(PKG_BUILD_DIR) \
-		CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS) -I." \
+		$(TARGET_CONFIGURE_OPTS) \
+		CFLAGS="$(TARGET_CFLAGS) -I." \
 		libiw.so.28 iwmulticall
 	$(MAKE) -C $(PKG_BUILD_DIR) \
 		PREFIX="$(PKG_INSTALL_DIR)" \