mtd.mk 5.0 KB

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