turn target runtime check of mtd into a compile-time check
authorFelix Fietkau <nbd@openwrt.org>
Tue, 24 Oct 2006 18:11:33 +0000 (18:11 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 24 Oct 2006 18:11:33 +0000 (18:11 +0000)
SVN-Revision: 5285

package/mtd/Makefile
package/mtd/src/mtd.c

index 00d347fad532353d89087d9d748de71489174ee6..b3edb7b1b8931eba03a3ecc26ed76cb929d7f9fb 100644 (file)
@@ -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/
index 1e9d316e4c510d7b97aee3a170533aca8d820916..559b937f971aa5a4e5fa2d647706d5c2d314d1cf 100644 (file)
@@ -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)