summaryrefslogtreecommitdiffstats
path: root/target/jffs2/jffs2root.mk
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2005-01-23 11:16:11 +0000
committerEric Andersen <andersen@codepoet.org>2005-01-23 11:16:11 +0000
commitdda90723ce4a6d8c84dbf7c66ef8b2c4e5d67b2c (patch)
treea8dbd06e4860f91530b93a1c1a098aa0beff2760 /target/jffs2/jffs2root.mk
parent7be239c03f7b5366ad0c4c118955492c1529861c (diff)
downloadbuildroot-novena-dda90723ce4a6d8c84dbf7c66ef8b2c4e5d67b2c.tar.gz
buildroot-novena-dda90723ce4a6d8c84dbf7c66ef8b2c4e5d67b2c.zip
Patch from gtj: http://bugs.uclibc.org/view.php?id=40
0000040: Adds options to jffs2 filesystem creation Brings jffs2 up to the 20041007 build level so it will compile with both 2.4 and 2.6 kernels. Adds ability to specify eraseblock and pad sizes, permissions squash, big/little endian and device table in the configuration. Also adds capability to copy the resulting image to a secondary location like a tftp server's root directory. mtd.patch adds capabilities of the previously attached patch plus allows you to compile a version of the utilities to run on the target system. So now there's a set of config options under package to compile the utils for distribution to the target and a set of config options under target to create a jffs2 filesystem.
Diffstat (limited to 'target/jffs2/jffs2root.mk')
-rw-r--r--target/jffs2/jffs2root.mk73
1 files changed, 46 insertions, 27 deletions
diff --git a/target/jffs2/jffs2root.mk b/target/jffs2/jffs2root.mk
index ee23d9b41..3e64a62d5 100644
--- a/target/jffs2/jffs2root.mk
+++ b/target/jffs2/jffs2root.mk
@@ -1,49 +1,68 @@
#############################################################
#
-# mtd provides us with mkfs.jffs2, to target JFFS2 filesystems
+# Build the jffs2 root filesystem image
#
#############################################################
-MTD_DIR:=$(BUILD_DIR)/mtd-20011217
-MTD_SOURCE=mtd_20011217.orig.tar.gz
-MTD_SITE=http://ftp.debian.org/debian/pool/main/m/mtd
-MKFS_JFFS2=$(shell which mkfs.jffs2 2>/dev/null || echo $(MTD_DIR)/util/mkfs.jffs2)
+JFFS2_OPTS := -e $(strip $(BR2_TARGET_ROOTFS_JFFS2_EBSIZE))
-$(DL_DIR)/$(MTD_SOURCE):
- $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE)
+ifeq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_PAD)),y)
+JFFS2_OPTS += -p
+ifneq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE)),0x0)
+JFFS2_OPTS += $(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE))
+endif
+endif
-$(MTD_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
- zcat $(DL_DIR)/$(MTD_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- touch $(MTD_DIR)/.unpacked
+ifeq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_SQUASH)),y)
+JFFS2_OPTS += -q
+endif
-$(MTD_DIR)/util/mkfs.jffs2: $(MTD_DIR)/.unpacked
- CFLAGS=-I$(LINUX_HEADERS_DIR)/include $(MAKE) LINUXDIR=$(LINUX_DIR) -C $(MTD_DIR)/util
+ifeq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_LE)),y)
+JFFS2_OPTS += -l
+endif
-mtd: $(MKFS_JFFS2)
+ifeq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_BE)),y)
+JFFS2_OPTS += -b
+endif
+JFFS2_DEVFILE = $(strip $(subst ",,$(BR2_TARGET_ROOTFS_JFFS2_DEVFILE)))
+ifneq ($(JFFS2_DEVFILE),)
+JFFS2_OPTS += -D $(JFFS2_DEVFILE)
+endif
+
+JFFS2_TARGET := $(subst ",,$(BR2_TARGET_ROOTFS_JFFS2_OUTPUT))
-#############################################################
#
-# Build the jffs2 root filesystem image
+# mtd-host is a dependency which builds a local copy of mkfs.jffs2 if it's needed.
+# the actual build is done from package/mtd/mtd.mk and it sets the
+# value of MKFS_JFFS2 to either the previously installed copy or the one
+# just built.
#
-#############################################################
-
-jffs2root: mtd
- #-@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
+$(JFFS2_TARGET): mtd-host
-@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
@rm -rf $(TARGET_DIR)/usr/man
+ @rm -rf $(TARGET_DIR)/usr/share/man
@rm -rf $(TARGET_DIR)/usr/info
- $(MKFS_JFFS2) --pad --little-endian --squash -e 0x20000 \
- -D target/default/device_table.txt -d $(TARGET_DIR) \
- -o $(IMAGE).jffs2
+ $(MKFS_JFFS2) \
+ $(JFFS2_OPTS) \
+ -d $(BUILD_DIR)/root \
+ -o $(JFFS2_TARGET)
+ @ls -l $(JFFS2_TARGET)
+
+JFFS2_COPYTO := $(strip $(subst ",,$(BR2_TARGET_ROOTFS_JFFS2_COPYTO)))
+
+jffs2root: $(JFFS2_TARGET)
+ifneq ($(JFFS2_COPYTO),)
+ @cp -f $(JFFS2_TARGET) $(JFFS2_COPYTO)
+endif
-jffs2root-source: $(DL_DIR)/$(MTD_SOURCE)
+jffs2root-source: mtd-host-source
-jffs2root-clean:
- -$(MAKE) -C $(MTD_DIR) clean
+jffs2root-clean: mtd-host-clean
+ -rm -f $(JFFS2_TARGET)
-jffs2root-dirclean:
- rm -rf $(MTD_DIR)
+jffs2root-dirclean: mtd-host-dirclean
+ -rm -f $(JFFS2_TARGET)