mtd.mk 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #############################################################
  2. #
  3. # mtd provides jffs2 utilities
  4. #
  5. #############################################################
  6. MTD_VERSION:=fcb52ccc99679460640386c297023f852b108f68
  7. # gitweb >= 1.6.6-rc1 uses first 7 chars of git SHA1 as dir suffix
  8. MTD_SHORT_VERSION=$(shell echo $(MTD_VERSION)|cut -c -7)
  9. MTD_SOURCE:=mtd-utils-$(MTD_VERSION).tar.gz
  10. MTD_URL:=http://git.infradead.org/mtd-utils.git?a=snapshot;h=$(MTD_VERSION);sf=tgz
  11. MTD_HOST_DIR:= $(TOOLCHAIN_DIR)/mtd-utils-$(MTD_VERSION)
  12. MTD_DIR:=$(BUILD_DIR)/mtd-utils-$(MTD_VERSION)
  13. MTD_CAT:=$(ZCAT)
  14. MTD_NAME:=mtd-utils-$(MTD_SHORT_VERSION)
  15. #############################################################
  16. #
  17. # Build mkfs.jffs2 and sumtool for use on the local host system if
  18. # needed by target/jffs2root.
  19. #
  20. #############################################################
  21. MKFS_JFFS2 := $(MTD_HOST_DIR)/mkfs.jffs2
  22. SUMTOOL := $(MTD_HOST_DIR)/sumtool
  23. $(DL_DIR)/$(MTD_SOURCE):
  24. $(WGET) -O $(DL_DIR)/$(MTD_SOURCE) "$(MTD_URL)"
  25. $(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
  26. $(MTD_CAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
  27. rm -rf $(MTD_HOST_DIR)
  28. mv $(TOOLCHAIN_DIR)/$(MTD_NAME) $(MTD_HOST_DIR)
  29. toolchain/patch-kernel.sh $(MTD_HOST_DIR) \
  30. package/mtd/mtd-utils.git mtd-utils-all\*.patch
  31. toolchain/patch-kernel.sh $(MTD_HOST_DIR) \
  32. package/mtd/mtd-utils.git mtd-utils-host\*.patch
  33. touch $@
  34. $(MKFS_JFFS2): $(MTD_HOST_DIR)/.unpacked
  35. CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \
  36. $(MAKE) \
  37. BUILDDIR=$(MTD_HOST_DIR) WITHOUT_XATTR=1 \
  38. -C $(MTD_HOST_DIR) mkfs.jffs2
  39. $(SUMTOOL): $(MTD_HOST_DIR)/.unpacked
  40. CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \
  41. $(MAKE) \
  42. BUILDDIR=$(MTD_HOST_DIR) WITHOUT_XATTR=1 \
  43. -C $(MTD_HOST_DIR) sumtool
  44. mtd-host: $(MKFS_JFFS2) $(SUMTOOL)
  45. mtd-host-source: $(DL_DIR)/$(MTD_SOURCE)
  46. mtd-host-clean:
  47. -$(MAKE) -C $(MTD_HOST_DIR) clean
  48. mtd-host-dirclean:
  49. rm -rf $(MTD_HOST_DIR)
  50. #############################################################
  51. #
  52. # build mtd for use on the target system
  53. #
  54. #############################################################
  55. $(MTD_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
  56. $(MTD_CAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  57. rm -rf $(MTD_DIR)
  58. mv $(BUILD_DIR)/$(MTD_NAME) $(MTD_DIR)
  59. toolchain/patch-kernel.sh $(MTD_DIR) package/mtd/mtd-utils.git mtd-utils-all\*.patch
  60. toolchain/patch-kernel.sh $(MTD_DIR) package/mtd/mtd-utils.git mtd-utils-target\*.patch
  61. touch $@
  62. MTD_TARGETS_n :=
  63. MTD_TARGETS_y :=
  64. MTD_TARGETS_$(BR2_PACKAGE_MTD_DOCFDISK) += docfdisk
  65. MTD_TARGETS_$(BR2_PACKAGE_MTD_DOC_LOADBIOS) += doc_loadbios
  66. MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASHCP) += flashcp
  67. MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASE) += flash_erase
  68. MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASEALL) += flash_eraseall
  69. MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_INFO) += flash_info
  70. MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_LOCK) += flash_lock
  71. MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_DUMP) += flash_otp_dump
  72. MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_OTP_INFO) += flash_otp_info
  73. MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_UNLOCK) += flash_unlock
  74. MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_CHECK) += ftl_check
  75. MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_FORMAT) += ftl_format
  76. MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS2DUMP) += jffs2dump
  77. MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS2) += mkfs.jffs2
  78. MTD_TARGETS_$(BR2_PACKAGE_MTD_MTD_DEBUG) += mtd_debug
  79. MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDDUMP) += nanddump
  80. MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDTEST) += nandtest
  81. MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDWRITE) += nandwrite
  82. MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTLDUMP) += nftldump
  83. MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTL_FORMAT) += nftl_format
  84. MTD_TARGETS_$(BR2_PACKAGE_MTD_RECV_IMAGE) += recv_image
  85. MTD_TARGETS_$(BR2_PACKAGE_MTD_RFDDUMP) += rfddump
  86. MTD_TARGETS_$(BR2_PACKAGE_MTD_RFDFORMAT) += rfdformat
  87. MTD_TARGETS_$(BR2_PACKAGE_MTD_SERVE_IMAGE) += serve_image
  88. MTD_TARGETS_$(BR2_PACKAGE_MTD_SUMTOOL) += sumtool
  89. MTD_TARGETS_UBI_n :=
  90. MTD_TARGETS_UBI_y :=
  91. MTD_TARGETS_UBI_$(BR2_PACKAGE_MTD_UBIATTACH) += ubiattach
  92. MTD_TARGETS_UBI_$(BR2_PACKAGE_MTD_UBICRC32) += ubicrc32
  93. MTD_TARGETS_UBI_$(BR2_PACKAGE_MTD_UBIDETACH) += ubidetach
  94. MTD_TARGETS_UBI_$(BR2_PACKAGE_MTD_UBIMIRROR) += ubimirror
  95. MTD_TARGETS_UBI_$(BR2_PACKAGE_MTD_UBIMKVOL) += ubimkvol
  96. MTD_TARGETS_UBI_$(BR2_PACKAGE_MTD_UBINFO) += ubinfo
  97. MTD_TARGETS_UBI_$(BR2_PACKAGE_MTD_UBIRMVOL) += ubirmvol
  98. MTD_TARGETS_UBI_$(BR2_PACKAGE_MTD_UBIUPDATEVOL) += ubiupdatevol
  99. MTD_BUILD_TARGETS := $(addprefix $(MTD_DIR)/, $(MTD_TARGETS_y)) $(addprefix $(MTD_DIR)/ubi-utils/, $(MTD_TARGETS_UBI_y))
  100. $(MTD_BUILD_TARGETS): $(MTD_DIR)/.unpacked
  101. mkdir -p $(TARGET_DIR)/usr/sbin
  102. $(MAKE1) OPTFLAGS="-DNEED_BCOPY -Dbcmp=memcmp -I$(STAGING_DIR)/usr/include $(TARGET_CFLAGS)" \
  103. LDFLAGS="$(TARGET_LDFLAGS)" \
  104. BUILDDIR=$(MTD_DIR) \
  105. CROSS=$(TARGET_CROSS) CC=$(TARGET_CC) WITHOUT_XATTR=1 -C $(MTD_DIR)
  106. MTD_TARGETS := $(addprefix $(TARGET_DIR)/usr/sbin/, $(MTD_TARGETS_y))
  107. MTD_UBI_TARGETS := $(addprefix $(TARGET_DIR)/usr/sbin/, $(MTD_TARGETS_UBI_y))
  108. $(MTD_TARGETS): $(TARGET_DIR)/usr/sbin/% : $(MTD_DIR)/%
  109. cp -f $< $@
  110. $(STRIPCMD) $@
  111. $(MTD_UBI_TARGETS): $(TARGET_DIR)/usr/sbin/% : $(MTD_DIR)/ubi-utils/%
  112. cp -f $< $@
  113. $(STRIPCMD) $@
  114. mtd: zlib lzo $(MTD_TARGETS) $(MTD_UBI_TARGETS)
  115. mtd-source: $(DL_DIR)/$(MTD_SOURCE)
  116. mtd-clean:
  117. -$(MAKE) -C $(MTD_DIR) clean
  118. mtd-dirclean:
  119. rm -rf $(MTD_DIR)
  120. #############################################################
  121. #
  122. # Toplevel Makefile options
  123. #
  124. #############################################################
  125. ifeq ($(BR2_PACKAGE_MTD),y)
  126. TARGETS+=mtd
  127. endif