Support building jffs2 filesystems. Update top level
authorEric Andersen <andersen@codepoet.org>
Fri, 17 Jan 2003 04:31:36 +0000 (04:31 -0000)
committerEric Andersen <andersen@codepoet.org>
Fri, 17 Jan 2003 04:31:36 +0000 (04:31 -0000)
makefile accordingly

Makefile
make/jffs2root.mk [new file with mode: 0644]

index 1738266cec963217ded3dc894ff164989e574423..32fe36110f33c3c9655599fa62ed1cb03ac23535 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -32,6 +32,7 @@ TARGETS=
 # What sortof target system shall we compile this for?
 ARCH:=i386
 #ARCH:=arm
+#ARCH:=powerpc
 #ARCH:=whatever
 
 # enable to build a native gcc toolchain with uclibc support
@@ -53,6 +54,16 @@ BUILD_WITH_LARGEFILE:=true
 # Command used to download source code
 WGET:=wget --passive-ftp
 
+# Optimize toolchain for which type of CPU?
+#OPTIMIZE_FOR_CPU:=i486
+#OPTIMIZE_FOR_CPU:=strongarm
+#OPTIMIZE_FOR_CPU:=whatever
+OPTIMIZE_FOR_CPU:=$(ARCH)
+
+# Any additional gcc options you may want to include....
+#EXTRA_GCC_CONFIG_OPTIONS:=--without-float
+EXTRA_GCC_CONFIG_OPTIONS:=
+
 #############################################################
 #
 # The list of stuff to build for the target filesystem
@@ -95,6 +106,14 @@ TARGETS+=busybox tinylogin
 # Pick your root filesystem type.
 TARGETS+=ext2root
 
+# Must mount cramfs with 'ramdisk_blocksize=4096'
+#TARGETS+=cramfsroot
+
+# You may need to edit make/jffs2root.mk to change target 
+# endian-ness or similar, but this is sufficient for most
+# things as-is...
+#TARGETS+=jffs2root
+
 #############################################################
 #
 # You should probably leave this stuff alone unless you know 
@@ -116,6 +135,7 @@ TARGET_PATH:=$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:/bin:/sbin:/usr/bin:/usr/
 STRIP:=$(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note
 #STRIP:=/bin/true
 IMAGE:=$(BASE_DIR)/root_fs
+GNU_TARGET_NAME:=$(OPTIMIZE_FOR_CPU)-pc-linux-gnu
 ifneq ($(strip $(ARCH)),i386)
 CROSS:=$(ARCH)-linux-
 endif
diff --git a/make/jffs2root.mk b/make/jffs2root.mk
new file mode 100644 (file)
index 0000000..dd897a7
--- /dev/null
@@ -0,0 +1,49 @@
+#############################################################
+#
+# mtd provides us with mkfs.jffs2, to target JFFS2 filesystems
+#
+#############################################################
+
+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 || echo $(MTD_DIR)/util/mkfs.jffs2)
+
+$(DL_DIR)/$(MTD_SOURCE):
+       $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE)
+
+$(MTD_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
+       zcat $(DL_DIR)/$(MTD_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+       touch $(MTD_DIR)/.unpacked
+
+$(MTD_DIR)/util/mkfs.jffs2: $(MTD_DIR)/.unpacked
+       CFLAGS=-I$(LINUX_DIR)/include $(MAKE) LINUXDIR=$(LINUX_DIR) -C $(MTD_DIR)/util
+
+mtd: $(MKFS_JFFS2)
+
+
+#############################################################
+#
+# Build the jffs2 root filesystem image
+#
+#############################################################
+
+jffs2root: jffs2
+       -@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
+       -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
+       @rm -rf $(TARGET_DIR)/usr/man
+       @rm -rf $(TARGET_DIR)/usr/info
+       $(MKFS_JFFS2) --pad --little-endian --squash -e 0x20000 \
+               -D $(SOURCE_DIR)/device_table.txt -d $(TARGET_DIR) \
+               -o $(IMAGE)
+
+jffs2root-source: $(DL_DIR)/$(GENEXT2_SOURCE)
+
+jffs2root-clean:
+       -make -C $(GENEXT2_DIR) clean
+
+jffs2root-dirclean:
+       rm -rf $(GENEXT2_DIR)
+
+
+