xref: /OK3568_Linux_fs/buildroot/package/mtd/mtd.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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