1 #############################################################
3 # Build the jffs2 root filesystem image
5 #############################################################
7 JFFS2_OPTS
:= -e
$(strip $(BR2_TARGET_ROOTFS_JFFS2_EBSIZE
))
9 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_PAD
),y
)
10 ifneq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE
)),0x0)
11 JFFS2_OPTS
+= --pad
=$(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE
))
17 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_SQUASH
),y
)
21 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_LE
),y
)
25 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_BE
),y
)
29 ifneq ($(BR2_TARGET_ROOTFS_JFFS2_DEFAULT_PAGESIZE
),y
)
30 JFFS2_OPTS
+= -s
$(BR2_TARGET_ROOTFS_JFFS2_PAGESIZE
)
31 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
),y
)
36 JFFS2_TARGET
:= $(strip $(subst ",,$(BR2_TARGET_ROOTFS_JFFS2_OUTPUT)))
38 JFFS2_DEVFILE
= $(strip $(subst ",,$(BR2_TARGET_ROOTFS_JFFS2_DEVFILE)))
40 ifneq ($(JFFS2_DEVFILE
)$(TARGET_DEVICE_TABLE
),)
41 JFFS2_OPTS
+= -D
$(TARGET_DEVICE_TABLE
)
46 # mtd-host is a dependency which builds a local copy of mkfs.jffs2 if it is needed.
47 # the actual build is done from package/mtd/mtd.mk and it sets the
48 # value of MKFS_JFFS2 to either the previously installed copy or the one
51 $(JFFS2_TARGET
): host-fakeroot makedevs mtd-host
52 -@find
$(TARGET_DIR
) -type f
-perm
+111 | xargs
$(STRIPCMD
) 2>/dev
/null || true
53 ifneq ($(BR2_HAVE_MANPAGES
),y
)
54 @
rm -rf
$(TARGET_DIR
)/usr
/share
/man
56 ifneq ($(BR2_HAVE_INFOPAGES
),y
)
57 @
rm -rf
$(TARGET_DIR
)/usr
/share
/info
59 @rmdir
-p
--ignore-fail-on-non-empty
$(TARGET_DIR
)/usr
/share
60 $(if
$(TARGET_LDCONFIG
),test ! -x
$(TARGET_LDCONFIG
) && true ||
$(TARGET_LDCONFIG
) -r
$(TARGET_DIR
) 2>/dev
/null
)
61 # Use fakeroot to pretend all target binaries are owned by root
62 rm -f
$(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
63 touch
$(PROJECT_BUILD_DIR
)/.fakeroot
.00000
64 cat
$(PROJECT_BUILD_DIR
)/.fakeroot
* > $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
65 echo
"chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
66 ifneq ($(TARGET_DEVICE_TABLE
),)
67 # Use fakeroot to pretend to create all needed device nodes
68 echo
"$(STAGING_DIR)/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
69 >> $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
71 # Use fakeroot so mkfs.jffs2 believes the previous fakery
72 echo
"$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $(JFFS2_TARGET)" \
73 >> $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
74 chmod a
+x
$(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
75 $(STAGING_DIR
)/usr
/bin
/fakeroot
-- $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
76 -@
rm -f
$(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(JFFS2_TARGET
))
77 @ls
-l
$(JFFS2_TARGET
)
78 ifeq ($(BR2_JFFS2_TARGET_SREC
),y
)
79 $(TARGET_CROSS
)objcopy
-I binary
-O srec
--adjust-vma
0xa1000000 $(JFFS2_TARGET
) $(JFFS2_TARGET
).srec
80 @ls
-l
$(JFFS2_TARGET
).srec
83 JFFS2_COPYTO
:= $(strip $(subst ",,$(BR2_TARGET_ROOTFS_JFFS2_COPYTO)))
86 jffs2root
: $(JFFS2_TARGET
)
87 ifneq ($(JFFS2_COPYTO
),)
88 @cp
-f
$(JFFS2_TARGET
) $(JFFS2_COPYTO
)
91 jffs2root-source
: mtd-host-source
93 jffs2root-clean
: mtd-host-clean
94 -rm -f
$(JFFS2_TARGET
)
96 jffs2root-dirclean
: mtd-host-dirclean
97 -rm -f
$(JFFS2_TARGET
)
99 #############################################################
101 # Toplevel Makefile options
103 #############################################################
104 ifeq ($(BR2_TARGET_ROOTFS_JFFS2
),y
)