$(REMOVE)/gdb-7.3.1
        touch $@
 
-$(D)/flashcp: $(ARCHIVE)/mtd-utils-1.4.6.tar.bz2 | $(TARGETPREFIX)
-       tar -C $(BUILD_TMP) -xpf $(ARCHIVE)/mtd-utils-1.4.6.tar.bz2
-       cd $(BUILD_TMP)/mtd-utils-1.4.6 && \
+ifeq ($(PLATFORM), nevis)
+$(D)/mtd-utils: $(ARCHIVE)/mtd-utils-$(MTD_UTILS_VER).tar.bz2 | $(TARGETPREFIX)
+       tar -C $(BUILD_TMP) -xpf $(ARCHIVE)/mtd-utils-$(MTD_UTILS_VER).tar.bz2
+       cd $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER) && \
                $(MAKE) `pwd`/mkfs.jffs2 `pwd`/sumtool BUILDDIR=`pwd` WITHOUT_XATTR=1 WITHOUT_LZO=1 && \
                cp -a mkfs.jffs2 sumtool $(HOSTPREFIX)/bin && \
                $(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) flashcp.c -lpng -lz -o $(TARGETPREFIX)/sbin/flashcp
        cd $(TARGETPREFIX)/sbin && \
        ln -sf flashcp fcp
-       rm -rf $(BUILD_TMP)/mtd-utils-1.4.6
+       rm -rf $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER)
        touch $@
 
+else
+
+MTD_BUILDDIR = `pwd`/build
+MTD_BUILDS_HOST = \
+       $(MTD_BUILDDIR)/mkfs.jffs2 \
+       $(MTD_BUILDDIR)/sumtool \
+       $(MTD_BUILDDIR)/jffs2reader \
+       $(MTD_BUILDDIR)/jffs2dump
+
+MTD_BUILDS = \
+       $(MTD_BUILDDIR)/flash_erase \
+       $(MTD_BUILDDIR)/nanddump \
+       $(MTD_BUILDDIR)/nandwrite \
+       $(MTD_BUILDDIR)/nandtest
+
+$(D)/mtd-utils: $(ARCHIVE)/mtd-utils-$(MTD_UTILS_VER).tar.bz2 $(D)/zlib | $(TARGETPREFIX)
+       # build for target
+       rm -fr $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER); \
+       $(UNTAR)/mtd-utils-$(MTD_UTILS_VER).tar.bz2; \
+       set -e; cd $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER); \
+               $(MAKE) $(MTD_BUILDS) BUILDDIR=$(MTD_BUILDDIR) WITHOUT_XATTR=1 WITHOUT_LZO=1 \
+                       CROSS=$(CROSS_DIR)/bin/$(TARGET)- \
+                       ZLIBCPPFLAGS="-I$(TARGETPREFIX)/include" \
+                       X_LDLIBS="-L$(TARGETPREFIX)/lib" \
+                       X_LDSTATIC="$(TARGETPREFIX)/lib"
+               cd $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER); \
+               mkdir -p $(TARGETPREFIX)/sbin; \
+               $(TARGET)-strip $(MTD_BUILDS); \
+               cp -a $(MTD_BUILDS) $(TARGETPREFIX)/sbin; \
+       # build for host
+       cd $(BUILD_TMP); \
+       rm -rf $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER); \
+       $(UNTAR)/mtd-utils-$(MTD_UTILS_VER).tar.bz2; \
+       set -e; cd $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER); \
+               $(MAKE) $(MTD_BUILDS_HOST) BUILDDIR=$(MTD_BUILDDIR) WITHOUT_XATTR=1 WITHOUT_LZO=1 \
+               X_LDSTATIC="/usr/lib"
+               cd $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER); \
+               strip $(MTD_BUILDS_HOST); \
+               cp -a $(MTD_BUILDS_HOST) $(HOSTPREFIX)/bin; \
+       rm -rf $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER) $(BUILD_TMP)/.remove
+       touch $@
+
+endif # ifeq ($(PLATFORM), nevis)
+
 $(D)/samba: $(D)/libiconv $(ARCHIVE)/samba-3.3.9.tar.gz | $(TARGETPREFIX)
        $(UNTAR)/samba-3.3.9.tar.gz
        cd $(BUILD_TMP)/samba-3.3.9 && \
 
 FLASHIMG = $(BUILD_TMP)/nevis-system-tmp.img
 SUMIMG   = $(BUILD_TMP)/nevis-system-$(DATE).sum.img
 
-flash: $(D)/flashcp
+flash: $(D)/mtd-utils
        rm -fr $(BUILD_TMP)/rootfs/oldroot
        echo "/dev/console c 0600 0 0 5 1 0 0 0" > $(BUILD_TMP)/devtable; \
        tar cfz $(BUILD_TMP)/rootfs.tar.gz $(BUILD_TMP)/rootfs; \
 SUMIMG     = $(SUMIMG_BODY).$(DATE).img
 endif
 
-flash: $(D)/flashcp
+flash: $(D)/mtd-utils
        rm -fr $(BUILD_TMP)/rootfs/oldroot; \
        echo "/dev/console c 0600 0 0 5 1 0 0 0" > $(BUILD_TMP)/devtable; \
        mkfs.jffs2 -n -e $(ERASEBLOCK) -l -U -D $(BUILD_TMP)/devtable -r $(BUILD_TMP)/rootfs -o $(FLASHIMG); \
 SUMIMG     = $(SUMIMG_BODY).$(DATE).img
 
 
-flash: $(D)/flashcp
+flash: $(D)/mtd-utils
        rm -fr $(BUILD_TMP)/rootfs/oldroot; \
        echo "/dev/console c 0600 0 0 5 1 0 0 0" > $(BUILD_TMP)/devtable; \
        mkfs.jffs2 -n -e $(ERASEBLOCK) -l -U -D $(BUILD_TMP)/devtable -r $(BUILD_TMP)/rootfs -o $(FLASHIMG); \