From a9cd57af9e7aeb91e8662eccb919a5db55f53475 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Tue, 24 Oct 2006 18:11:33 +0000
Subject: turn target runtime check of mtd into a compile-time check

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5285 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 package/mtd/Makefile  |  9 ++++++++-
 package/mtd/src/mtd.c | 24 ++++++------------------
 2 files changed, 14 insertions(+), 19 deletions(-)

(limited to 'package')

diff --git a/package/mtd/Makefile b/package/mtd/Makefile
index 00d347fad5..b3edb7b1b8 100644
--- a/package/mtd/Makefile
+++ b/package/mtd/Makefile
@@ -7,11 +7,12 @@
 # $Id$
 
 include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mtd
 PKG_RELEASE:=4
 
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+PKG_BUILD_DIR := $(KERNEL_BUILD_DIR)/$(PKG_NAME)
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -30,6 +31,12 @@ define Build/Prepare
 	$(CP) ./src/* $(PKG_BUILD_DIR)/
 endef
 
+define Build/Compile
+	$(MAKE) -C $(PKG_BUILD_DIR) \
+		$(TARGET_CONFIGURE_OPTS) \
+		CFLAGS="$(TARGET_CFLAGS) -Dtarget_$(BOARD)=1"
+endef
+
 define Package/mtd/install
 	install -d -m0755 $(1)/sbin
 	install -m0755 $(PKG_BUILD_DIR)/mtd $(1)/sbin/
diff --git a/package/mtd/src/mtd.c b/package/mtd/src/mtd.c
index 1e9d316e4c..559b937f97 100644
--- a/package/mtd/src/mtd.c
+++ b/package/mtd/src/mtd.c
@@ -64,8 +64,9 @@ char buf[BUFSIZE];
 int buflen;
 int quiet;
 
+#ifdef target_brcm
 int
-image_check_bcom(int imagefd, const char *mtd)
+image_check_brcm(int imagefd, const char *mtd)
 {
 	struct trx_header *trx = (struct trx_header *) buf;
 	struct mtd_info_user mtdInfo;
@@ -121,6 +122,7 @@ image_check_bcom(int imagefd, const char *mtd)
 	close(fd);
 	return 1;
 }
+#endif /* target_brcm */
 
 int
 image_check(int imagefd, const char *mtd)
@@ -130,23 +132,9 @@ image_check(int imagefd, const char *mtd)
 	char *c;
 	FILE *f;
 
-	systype = SYSTYPE_UNKNOWN;
-	f = fopen("/proc/cpuinfo", "r");
-	while (!feof(f) && (fgets(buf, BUFSIZE - 1, f) != NULL)) {
-		if ((strncmp(buf, "system type", 11) == 0) && (c = strchr(buf, ':'))) {
-			c += 2;
-			if (strncmp(c, "Broadcom BCM947XX", 17) == 0)
-				systype = SYSTYPE_BROADCOM;
-		}
-	}
-	fclose(f);
-	
-	switch(systype) {
-		case SYSTYPE_BROADCOM:
-			return image_check_bcom(imagefd, mtd);
-		default:
-			return 1;
-	}
+#ifdef target_brcm
+	return image_check_brcm(imagefd, mtd);
+#endif
 }
 
 int mtd_check(char *mtd)
-- 
cgit v1.2.3