瀏覽代碼

squashfs: add lzma support

And try to select a sane default compression algorithm.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Peter Korsgaard 15 年之前
父節點
當前提交
ed4ca35a1a
共有 4 個文件被更改,包括 33 次插入9 次删除
  1. 3 0
      fs/squashfs/Config.in
  2. 4 0
      fs/squashfs/squashfs.mk
  3. 6 0
      package/squashfs/Config.in
  4. 20 9
      package/squashfs/squashfs.mk

+ 3 - 0
fs/squashfs/Config.in

@@ -31,6 +31,9 @@ choice
 config BR2_TARGET_ROOTFS_SQUASHFS4_GZIP
        bool "gzip"
 
+config BR2_TARGET_ROOTFS_SQUASHFS4_LZMA
+       bool "lzma"
+
 config BR2_TARGET_ROOTFS_SQUASHFS4_LZO
        bool "lzo"
 

+ 4 - 0
fs/squashfs/squashfs.mk

@@ -10,8 +10,12 @@ ROOTFS_SQUASHFS_DEPENDENCIES = host-squashfs
 ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4_LZO),y)
 ROOTFS_SQUASHFS_ARGS += -comp lzo
 else
+ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4_LZMA),y)
+ROOTFS_SQUASHFS_ARGS += -comp lzma
+else
 ROOTFS_SQUASHFS_ARGS += -comp gzip
 endif
+endif
 
 else
 ROOTFS_SQUASHFS_DEPENDENCIES = host-squashfs3

+ 6 - 0
package/squashfs/Config.in

@@ -15,6 +15,12 @@ config BR2_PACKAGE_SQUASHFS_GZIP
        help
          Support GZIP compression algorithm
 
+config BR2_PACKAGE_SQUASHFS_LZMA
+       bool "lzma support"
+       select BR2_PACKAGE_XZ
+       help
+         Support LZMA compression algorithm
+
 config BR2_PACKAGE_SQUASHFS_LZO
        bool "lzo support"
        select BR2_PACKAGE_LZO

+ 20 - 9
package/squashfs/squashfs.mk

@@ -3,30 +3,41 @@ SQUASHFS_SOURCE=squashfs$(SQUASHFS_VERSION).tar.gz
 SQUASHFS_SITE=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/squashfs
 
 # no libattr/xz in BR
-SQUASHFS_MAKE_ARGS = XATTR_SUPPORT=0 XZ_SUPPORT=0
+SQUASHFS_MAKE_ARGS = XATTR_SUPPORT=0
 
-# we need atleast one compresser, so use gzip if lzo isn't enabled
-ifeq ($(BR2_PACKAGE_SQUASHFS_GZIP)$(if $(BR2_PACKAGE_SQUASHFS_LZO),,y),y)
-SQUASHFS_DEPENDENCIES += zlib
-SQUASHFS_MAKE_ARGS += GZIP_SUPPORT=1
+# we need atleast one compresser, so use gzip if none are enabled
+ifeq ($(BR2_PACKAGE_SQUASHFS_GZIP)$(BR2_PACKAGE_SQUASHFS_LZO)$(BR2_PACKAGE_SQUASHFS_LZMA),)
+BR2_PACKAGE_SQUASHFS_GZIP=y
+endif
+
+ifeq ($(BR2_PACKAGE_SQUASHFS_LZMA),y)
+SQUASHFS_DEPENDENCIES += xz
+SQUASHFS_MAKE_ARGS += XZ_SUPPORT=1 COMP_DEFAULT=lzma
 else
-SQUASHFS_MAKE_ARGS += GZIP_SUPPORT=0 COMP_DEFAULT=lzo
+SQUASHFS_MAKE_ARGS += XZ_SUPPORT=0
 endif
 
 ifeq ($(BR2_PACKAGE_SQUASHFS_LZO),y)
 SQUASHFS_DEPENDENCIES += lzo
-SQUASHFS_MAKE_ARGS += LZO_SUPPORT=1
+SQUASHFS_MAKE_ARGS += LZO_SUPPORT=1 COMP_DEFAULT=lzo
 else
 SQUASHFS_MAKE_ARGS += LZO_SUPPORT=0
 endif
 
+ifeq ($(BR2_PACKAGE_SQUASHFS_GZIP),y)
+SQUASHFS_DEPENDENCIES += zlib
+SQUASHFS_MAKE_ARGS += GZIP_SUPPORT=1 COMP_DEFAULT=gzip
+else
+SQUASHFS_MAKE_ARGS += GZIP_SUPPORT=0
+endif
+
 
-HOST_SQUASHFS_DEPENDENCIES = host-zlib host-lzo
+HOST_SQUASHFS_DEPENDENCIES = host-zlib host-lzo host-xz
 
 # no libattr/xz in BR
 HOST_SQUASHFS_MAKE_ARGS = \
 	XATTR_SUPPORT=0 \
-	XZ_SUPPORT=0    \
+	XZ_SUPPORT=1    \
 	GZIP_SUPPORT=1  \
 	LZO_SUPPORT=1