From db06ca593b3d80ec514ecb2b20d49e3638cd3f0b Mon Sep 17 00:00:00 2001
From: Lars-Peter Clausen <lars@metafoo.de>
Date: Mon, 11 Jan 2010 01:10:45 +0000
Subject: [PATCH] Add support for building ubifs images.

SVN-Revision: 19097
---
 Config.in           |  7 +++++++
 include/image.mk    | 10 ++++++++++
 scripts/metadata.pl |  1 +
 target/Config.in    |  5 ++++-
 4 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/Config.in b/Config.in
index e80d90c03e..1f689c0664 100644
--- a/Config.in
+++ b/Config.in
@@ -88,6 +88,13 @@ menu "Target Images"
 		help
 		  Create some bootable ISO image
 
+	config TARGET_ROOTFS_UBIFS
+		bool "ubifs"
+		default y if USES_UBIFS
+		depends !TARGET_ROOTFS_INITRAMFS && USES_UBIFS
+		help
+		  Build a ubifs root filesystem
+
 comment "Image Options"
 
 source "target/linux/*/image/Config.in"
diff --git a/include/image.mk b/include/image.mk
index 7f2307919b..ac80937049 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -86,6 +86,14 @@ ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
 		( cd $(TARGET_DIR); find . | cpio -o -H newc | gzip -9 >$(BIN_DIR)/openwrt-$(BOARD)-rootfs.cpio.gz )
     endef
   endif
+  ifeq ($(CONFIG_TARGET_ROOTFS_UBIFS),y)
+    define Image/mkfs/ubifs
+		$(CP) ./ubinize.cfg $(KDIR)
+		$(STAGING_DIR_HOST)/bin/mkfs.ubifs $(UBIFS_OPTS) -o $(KDIR)/root.ubifs -d $(TARGET_DIR)
+		(cd $(KDIR); \
+		$(STAGING_DIR_HOST)/bin/ubinize $(UBINIZE_OPTS) -o $(BIN_DIR)/openwrt-$(BOARD)-rootfs.ubi ubinize.cfg)
+    endef
+  endif
 else
   define Image/BuildKernel
 	cp $(KDIR)/vmlinux.elf $(BIN_DIR)/openwrt-$(BOARD)-vmlinux.elf
@@ -150,6 +158,7 @@ ifneq ($(IB),1)
 	$(call Image/mkfs/cpiogz)
 	$(call Image/mkfs/ext2)
 	$(call Image/mkfs/iso)
+	$(call Image/mkfs/ubifs)
 	$(call Image/Checksum)
 else
   install: compile install-targets
@@ -160,6 +169,7 @@ else
 	$(call Image/mkfs/cpiogz)
 	$(call Image/mkfs/ext2)
 	$(call Image/mkfs/iso)
+	$(call Image/mkfs/ubifs)
 	$(call Image/Checksum)
 endif
 
diff --git a/scripts/metadata.pl b/scripts/metadata.pl
index 54ac063902..aa66e53094 100755
--- a/scripts/metadata.pl
+++ b/scripts/metadata.pl
@@ -163,6 +163,7 @@ sub target_config_features(@) {
 		/ext2/ and $ret .= "\tselect USES_EXT2\n";
 		/tgz/ and $ret .= "\tselect USES_TGZ\n";
 		/cpiogz/ and $ret .= "\tselect USES_CPIOGZ\n";
+		/ubifs/ and $ret .= "\tselect USES_UBIFS\n";
 		/fpu/ and $ret .= "\tselect HAS_FPU\n";
 		/ramdisk/ and $ret .= "\tselect USES_INITRAMFS\n";
 		/powerpc64/ and $ret .= "\tselect powerpc64\n";
diff --git a/target/Config.in b/target/Config.in
index 14cdfa577e..f5aa043053 100644
--- a/target/Config.in
+++ b/target/Config.in
@@ -50,7 +50,10 @@ config USES_TGZ
 config USES_CPIOGZ
 	bool
 
-config PROFILE_KCONFIG 
+config USES_UBIFS
+	bool
+
+config PROFILE_KCONFIG
 	bool
 
 config NOMMU
-- 
GitLab