1 #############################################################
3 # Build the jffs2 root filesystem image
5 #############################################################
7 JFFS2_OPTS
:= -e
$(BR2_TARGET_ROOTFS_JFFS2_EBSIZE
)
8 SUMTOOL_OPTS
:= $(JFFS2_OPTS
)
10 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_PAD
),y
)
11 ifneq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE
)),0x0)
12 JFFS2_OPTS
+= --pad
=$(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE
))
19 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_LE
),y
)
24 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_BE
),y
)
29 JFFS2_OPTS
+= -s
$(BR2_TARGET_ROOTFS_JFFS2_PAGESIZE
)
30 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
),y
)
35 JFFS2_TARGET
:= $(strip $(subst ",,$(BR2_TARGET_ROOTFS_JFFS2_OUTPUT)))
37 ifneq ($(TARGET_DEVICE_TABLE
),)
38 JFFS2_OPTS
+= -D
$(TARGET_DEVICE_TABLE
)
43 # mtd-host is a dependency which builds a local copy of mkfs.jffs2 if it is needed.
44 # the actual build is done from package/mtd/mtd.mk and it sets the
45 # value of MKFS_JFFS2 to either the previously installed copy or the one
48 $(JFFS2_TARGET
): host-fakeroot makedevs mtd-host
49 # Use fakeroot to pretend all target binaries are owned by root
50 rm -f
$(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
51 touch
$(PROJECT_BUILD_DIR
)/.fakeroot
.00000
52 cat
$(PROJECT_BUILD_DIR
)/.fakeroot
* > $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
53 echo
"chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
54 ifneq ($(TARGET_DEVICE_TABLE
),)
55 # Use fakeroot to pretend to create all needed device nodes
56 echo
"$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
57 >> $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
59 # Use fakeroot so mkfs.jffs2 believes the previous fakery
60 ifneq ($(BR2_TARGET_ROOTFS_JFFS2_SUMMARY
),)
61 echo
"$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $(JFFS2_TARGET).nosummary && " \
62 "$(SUMTOOL) $(SUMTOOL_OPTS) -i $(JFFS2_TARGET).nosummary -o $(JFFS2_TARGET) && " \
63 "rm $(JFFS2_TARGET).nosummary" \
64 >> $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
66 echo
"$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $(JFFS2_TARGET)" \
67 >> $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
69 chmod a
+x
$(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
70 $(HOST_DIR
)/usr
/bin
/fakeroot
-- $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
71 -@
rm -f
$(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
72 @ls
-l
$(JFFS2_TARGET
)
73 ifeq ($(BR2_JFFS2_TARGET_SREC
),y
)
74 $(TARGET_CROSS
)objcopy
-I binary
-O srec
--adjust-vma
0xa1000000 $(JFFS2_TARGET
) $(JFFS2_TARGET
).srec
75 @ls
-l
$(JFFS2_TARGET
).srec
78 JFFS2_COPYTO
:= $(strip $(subst ",,$(BR2_TARGET_ROOTFS_JFFS2_COPYTO)))
81 jffs2root
: $(JFFS2_TARGET
)
82 ifneq ($(JFFS2_COPYTO
),)
83 @cp
-f
$(JFFS2_TARGET
) $(JFFS2_COPYTO
)
86 jffs2root-source
: mtd-host-source
88 jffs2root-clean
: mtd-host-clean
89 -rm -f
$(JFFS2_TARGET
)
91 jffs2root-dirclean
: mtd-host-dirclean
92 -rm -f
$(JFFS2_TARGET
)
94 #############################################################
96 # Toplevel Makefile options
98 #############################################################
99 ifeq ($(BR2_TARGET_ROOTFS_JFFS2
),y
)