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