From 9051e79bc23a94c16adb957f773852945c9b3337 Mon Sep 17 00:00:00 2001
From: Luka Perkov <luka@openwrt.org>
Date: Fri, 4 Oct 2013 10:49:47 +0000
Subject: [PATCH] build: extend menu with few ubifs options

Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 38303
---
 Config.in        | 36 +++++++++++++++++++++++++++++++++++-
 include/image.mk | 10 +++++++++-
 2 files changed, 44 insertions(+), 2 deletions(-)

diff --git a/Config.in b/Config.in
index 2074245758..a7ef477b20 100644
--- a/Config.in
+++ b/Config.in
@@ -107,13 +107,47 @@ menu "Target Images"
 		help
 		  Build a squashfs-lzma root filesystem
 
-	config TARGET_ROOTFS_UBIFS
+	menuconfig TARGET_ROOTFS_UBIFS
 		bool "ubifs"
 		default y if USES_UBIFS
 		depends on USES_UBIFS
 		help
 		  Build a ubifs root filesystem
 
+		choice
+			prompt "compression"
+			default TARGET_UBIFS_COMPRESSION_NONE
+			depends on TARGET_ROOTFS_UBIFS
+			help
+			  Select compression type
+
+			config TARGET_UBIFS_COMPRESSION_NONE
+				bool "none"
+
+			config TARGET_UBIFS_COMPRESSION_LZO
+				bool "lzo"
+
+			config TARGET_UBIFS_COMPRESSION_ZLIB
+				bool "zlib"
+		endchoice
+
+		config TARGET_UBIFS_FREE_SPACE_FIXUP
+			bool "free space fixup" if TARGET_ROOTFS_UBIFS
+			default y
+			help
+			  The file-system free space has to be fixed up on first mount
+
+		config TARGET_UBIFS_JOURNAL_SIZE
+			string
+			prompt "journal size" if TARGET_ROOTFS_UBIFS
+			default "512KiB"
+
+		config TARGET_UBIFS_SQUASH_UIDS
+			bool "squash uids" if TARGET_ROOTFS_UBIFS
+			default n
+			help
+			  Squash owners making all files owned by root
+
 	comment "Image Options"
 
 	source "target/linux/*/image/Config.in"
diff --git a/include/image.mk b/include/image.mk
index 5d512df38d..e0731f0895 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -116,7 +116,15 @@ endif
 ifneq ($(CONFIG_TARGET_ROOTFS_UBIFS),)
     define Image/mkfs/ubifs
 		$(CP) ./ubinize.cfg $(KDIR)
-		$(STAGING_DIR_HOST)/bin/mkfs.ubifs $(UBIFS_OPTS) $(MKFS_DEVTABLE_OPT) -o $(KDIR)/root.ubifs -d $(TARGET_DIR)
+		$(STAGING_DIR_HOST)/bin/mkfs.ubifs \
+			$(UBIFS_OPTS) \
+			$(if $(CONFIG_TARGET_UBIFS_FREE_SPACE_FIXUP),--space-fixup) \
+			$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_NONE),--force-compr=none) \
+			$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_LZO),--force-compr=lzo) \
+			$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_ZLIB),--force-compr=zlib) \
+			--jrn-size=$(CONFIG_TARGET_UBIFS_JOURNAL_SIZE) \
+			-o $(KDIR)/root.ubifs \
+			-d $(TARGET_DIR)
 		$(call Image/Build,ubifs)
 		(cd $(KDIR); \
 		$(STAGING_DIR_HOST)/bin/ubinize $(UBINIZE_OPTS) -o $(KDIR)/root.ubi ubinize.cfg)
-- 
GitLab