1################################################################################ 2# 3# mtd 4# 5################################################################################ 6 7MTD_VERSION = 2.1.3 8MTD_SOURCE = mtd-utils-$(MTD_VERSION).tar.bz2 9MTD_SITE = ftp://ftp.infradead.org/pub/mtd-utils 10MTD_LICENSE = GPL-2.0 11MTD_LICENSE_FILES = COPYING 12MTD_CPE_ID_VENDOR = mtd-utils_project 13MTD_CPE_ID_PRODUCT = mtd-utils 14MTD_INSTALL_STAGING = YES 15 16ifeq ($(BR2_PACKAGE_MTD_JFFS_UTILS),y) 17MTD_DEPENDENCIES += zlib lzo host-pkgconf 18MTD_CONF_OPTS += --with-jffs 19else 20MTD_CONF_OPTS += --without-jffs 21endif 22 23ifeq ($(BR2_PACKAGE_MTD_UBIFS_UTILS),y) 24MTD_DEPENDENCIES += util-linux zlib lzo host-pkgconf 25MTD_CONF_OPTS += --with-ubifs 26# crypto needs linux/hash_info.h 27ifeq ($(BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12)$(BR2_PACKAGE_OPENSSL),yy) 28MTD_DEPENDENCIES += openssl 29MTD_CONF_OPTS += --with-crypto 30else 31MTD_CONF_OPTS += --without-crypto 32endif 33ifeq ($(BR2_PACKAGE_ZSTD),y) 34MTD_DEPENDENCIES += zstd 35MTD_CONF_OPTS += --with-zstd 36else 37MTD_CONF_OPTS += --without-zstd 38endif 39else 40MTD_CONF_OPTS += --without-ubifs 41endif 42 43ifeq ($(BR2_PACKAGE_MTD_UBIHEALTHD),y) 44MTD_CONF_OPTS += --enable-ubihealthd 45else 46MTD_CONF_OPTS += --disable-ubihealthd 47endif 48 49ifeq ($(BR2_PACKAGE_MTD_TESTS),y) 50MTD_CONF_OPTS += --enable-tests 51else 52MTD_CONF_OPTS += --disable-tests 53endif 54 55# If extended attributes are required, the acl package must 56# also be enabled which will also include the attr package. 57ifeq ($(BR2_PACKAGE_ACL),y) 58MTD_DEPENDENCIES += acl 59MTD_CONF_OPTS += --with-xattr 60else 61MTD_CONF_OPTS += --without-xattr 62endif 63 64HOST_MTD_DEPENDENCIES = host-acl host-zlib host-lzo host-util-linux host-zstd 65HOST_MTD_CONF_OPTS = \ 66 --with-jffs \ 67 --with-ubifs \ 68 --without-crypto \ 69 --disable-tests 70 71MKFS_JFFS2 = $(HOST_DIR)/sbin/mkfs.jffs2 72SUMTOOL = $(HOST_DIR)/sbin/sumtool 73 74MTD_TARGETS_$(BR2_PACKAGE_MTD_DOCFDISK) += docfdisk 75MTD_TARGETS_$(BR2_PACKAGE_MTD_DOC_LOADBIOS) += doc_loadbios 76MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASHCP) += flashcp 77MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASE) += flash_erase 78MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_LOCK) += flash_lock 79MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_DUMP) += flash_otp_dump 80MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_INFO) += flash_otp_info 81MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_LOCK) += flash_otp_lock 82MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_WRITE) += flash_otp_write 83MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_ERASE) += flash_otp_erase 84MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_UNLOCK) += flash_unlock 85MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_CHECK) += ftl_check 86MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_FORMAT) += ftl_format 87MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS2DUMP) += jffs2dump 88MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS2) += mkfs.jffs2 89MTD_TARGETS_$(BR2_PACKAGE_MTD_MTD_DEBUG) += mtd_debug 90MTD_TARGETS_$(BR2_PACKAGE_MTD_MTDPART) += mtdpart 91MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDDUMP) += nanddump 92MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDTEST) += nandtest 93MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDWRITE) += nandwrite 94MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTLDUMP) += nftldump 95MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTL_FORMAT) += nftl_format 96MTD_TARGETS_$(BR2_PACKAGE_MTD_RECV_IMAGE) += recv_image 97MTD_TARGETS_$(BR2_PACKAGE_MTD_RFDDUMP) += rfddump 98MTD_TARGETS_$(BR2_PACKAGE_MTD_RFDFORMAT) += rfdformat 99MTD_TARGETS_$(BR2_PACKAGE_MTD_SERVE_IMAGE) += serve_image 100MTD_TARGETS_$(BR2_PACKAGE_MTD_SUMTOOL) += sumtool 101MTD_TARGETS_$(BR2_PACKAGE_MTD_MTDINFO) += mtdinfo 102MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIATTACH) += ubiattach 103MTD_TARGETS_$(BR2_PACKAGE_MTD_UBICRC32) += ubicrc32 104MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIDETACH) += ubidetach 105MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIFORMAT) += ubiformat 106MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIHEALTHD) += ubihealthd 107MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIMKVOL) += ubimkvol 108MTD_TARGETS_$(BR2_PACKAGE_MTD_UBINFO) += ubinfo 109MTD_TARGETS_$(BR2_PACKAGE_MTD_UBINIZE) += ubinize 110MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIRENAME) += ubirename 111MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIRMVOL) += ubirmvol 112MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIRSVOL) += ubirsvol 113MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIUPDATEVOL) += ubiupdatevol 114MTD_TARGETS_$(BR2_PACKAGE_MTD_UBIBLOCK) += ubiblock 115MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSUBIFS) += mkfs.ubifs 116MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_READTEST) += flash_readtest 117MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_SPEED) += flash_speed 118MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_STRESS) += flash_stress 119MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_TORTURE) += flash_torture 120MTD_TARGETS_$(BR2_PACKAGE_MTD_INTEGCK) += integck 121MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDBITERRS) += nandbiterrs 122MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDPAGETEST) += nandpagetest 123MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDSUBPAGETEST) += nandsubpagetest 124MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDFLIPBITS) += nandflipbits 125 126define MTD_INSTALL_TARGET_CMDS 127 $(foreach f,$(MTD_TARGETS_y), \ 128 $(INSTALL) -D -m 0755 $(@D)/$(f) $(TARGET_DIR)/usr/sbin/$(notdir $(f)) 129 ) 130endef 131 132# Those libraries are not installed by "make install", but are needed 133# by other packages, such as swupdate. 134define MTD_INSTALL_LIBS 135 $(INSTALL) -D -m 0755 $(@D)/include/libmtd.h $(STAGING_DIR)/usr/include/libmtd.h 136 $(INSTALL) -D -m 0755 $(@D)/include/libubi.h $(STAGING_DIR)/usr/include/libubi.h 137 $(INSTALL) -D -m 0755 $(@D)/include/mtd/ubi-media.h $(STAGING_DIR)/usr/include/mtd/ubi-media.h 138 $(INSTALL) -D -m 0755 $(@D)/libmtd.a $(STAGING_DIR)/usr/lib/libmtd.a 139 $(INSTALL) -D -m 0755 $(@D)/libubi.a $(STAGING_DIR)/usr/lib/libubi.a 140endef 141 142MTD_POST_INSTALL_STAGING_HOOKS += MTD_INSTALL_LIBS 143 144$(eval $(autotools-package)) 145$(eval $(host-autotools-package)) 146