diff --git a/target/Makefile b/target/Makefile
index d5e6bea01c6a1a470bb953d1b8f8f18179a79531..651c13f6ff91dff08b5e3f7a9e11541a36c78452 100644
--- a/target/Makefile
+++ b/target/Makefile
@@ -12,10 +12,9 @@ all: install
 $(BIN_DIR):
 	mkdir -p $(BIN_DIR)
 
-TARGETS-y := linux utils
+TARGETS-y := linux
 TARGETS-$(CONFIG_SDK) += sdk
 
-linux-compile: utils-install
 linux-install: $(BIN_DIR)
 image_install: linux-install
 
diff --git a/target/utils/Makefile b/target/utils/Makefile
deleted file mode 100644
index d11d7442f241962e6ca353825eafca315bc5ca59..0000000000000000000000000000000000000000
--- a/target/utils/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# 
-# Copyright (C) 2006 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-include $(TOPDIR)/rules.mk
-
-TARGETS := addpattern trx motorola-bin dgfirmware trx2usr
-
-UTILS_BUILD_DIR:=$(BUILD_DIR)/target-utils
-
-download:
-prepare: $(UTILS_BUILD_DIR)
-compile: prepare $(patsubst %,$(UTILS_BUILD_DIR)/%,$(TARGETS)) FORCE
-	mkdir -p $(STAGING_DIR)/bin
-	$(CP) $(UTILS_BUILD_DIR)/* $(STAGING_DIR)/bin/
-install: compile
-package:
-clean: FORCE
-	rm -rf $(UTILS_BUILD_DIR)
-	for f in $(TARGETS); do \
-		rm -f $(STAGING_DIR)/bin/$$f ; \
-	done
-
-$(UTILS_BUILD_DIR):
-	mkdir -p $(UTILS_BUILD_DIR)
-	
-$(UTILS_BUILD_DIR)/%: src/%.c
-	$(CC) -O2 -I $(STAGING_DIR)/include-host -include endian.h -o $@ $(patsubst $(UTILS_BUILD_DIR)/%,src/%.c,$@)
-	chmod 755 $@
-
diff --git a/tools/Makefile b/tools/Makefile
index eeadde2ed622693f32d30f6f2293ce9bce6bd3b9..f8f08781b5380e23f9d02a681a53ec6f23e64eb1 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -7,7 +7,7 @@
 # Main makefile for the host tools
 #
 include $(TOPDIR)/rules.mk
-TARGETS-y:=sed sstrip ipkg-utils ext2fs squashfs mtd-utils lzma mkimage
+TARGETS-y:=sed sstrip ipkg-utils ext2fs squashfs mtd-utils lzma mkimage firmware-utils
 
 TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y))
 TARGETS_PREPARE:=$(patsubst %,%-prepare,$(TARGETS-y))
diff --git a/tools/firmware-utils/Makefile b/tools/firmware-utils/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..7b612aeac125e94e5c4d0e7d01cdc37ad9349a64
--- /dev/null
+++ b/tools/firmware-utils/Makefile
@@ -0,0 +1,32 @@
+# 
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/host-build.mk
+
+PKG_NAME := firmware-utils
+PKG_BUILD_DIR:=$(TOOL_BUILD_DIR)/firmware-utils
+
+CFLAGS := -O2 -I $(STAGING_DIR)/include-host -include endian.h
+
+define cc
+	$(CC) $(CFLAGS) -o $(PKG_BUILD_DIR)/bin/$(1) src/$(1).c
+endef
+
+define Build/Compile
+	mkdir -p $(PKG_BUILD_DIR)/bin
+	$(call cc,addpattern)
+	$(call cc,trx)
+	$(call cc,motorola-bin)
+	$(call cc,dgfirmware)
+	$(call cc,trx2usr)
+endef
+
+define Build/Install
+	$(CP) $(PKG_BUILD_DIR)/bin/* $(STAGING_DIR)/bin
+endef
+
+$(eval $(call HostBuild))
diff --git a/target/utils/src/addpattern.c b/tools/firmware-utils/src/addpattern.c
similarity index 100%
rename from target/utils/src/addpattern.c
rename to tools/firmware-utils/src/addpattern.c
diff --git a/target/utils/src/dgfirmware.c b/tools/firmware-utils/src/dgfirmware.c
similarity index 100%
rename from target/utils/src/dgfirmware.c
rename to tools/firmware-utils/src/dgfirmware.c
diff --git a/target/utils/src/motorola-bin.c b/tools/firmware-utils/src/motorola-bin.c
similarity index 100%
rename from target/utils/src/motorola-bin.c
rename to tools/firmware-utils/src/motorola-bin.c
diff --git a/target/utils/src/trx.c b/tools/firmware-utils/src/trx.c
similarity index 100%
rename from target/utils/src/trx.c
rename to tools/firmware-utils/src/trx.c
diff --git a/target/utils/src/trx2usr.c b/tools/firmware-utils/src/trx2usr.c
similarity index 100%
rename from target/utils/src/trx2usr.c
rename to tools/firmware-utils/src/trx2usr.c