linux: Add kernel compression selection.
authorJohan Sagaert <sagaert.johan@proximus.be>
Sun, 12 Jul 2015 11:43:32 +0000 (13:43 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 13 Dec 2015 15:22:40 +0000 (16:22 +0100)
This selection will ensure that the correct host tools
will be build used for the kernel compression method used.

[Maxime: Select the compression opts in the kernel config too ]

Signed-off-by: Sagaert Johan <sagaert.johan@proximus.be>
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
linux/Config.in
linux/linux.mk

index 432cba45d1df34b0cbd10c906ee305ee99735134..57b3490e89488776f2bb14ae366787fbcc9e90e3 100644 (file)
@@ -262,6 +262,34 @@ config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
 
 endchoice
 
+#
+# Kernel compression format
+#
+
+choice
+       prompt "Kernel compression format"
+       help
+         This selection will just ensure that the correct host tools are build.
+         The actual compression for the kernel should be selected in the
+         kernel configuration menu.
+
+config BR2_LINUX_KERNEL_GZIP
+       bool "gzip compression"
+
+config BR2_LINUX_KERNEL_LZ4
+       bool "lz4 compression"
+
+config BR2_LINUX_KERNEL_LZMA
+       bool "lzma compression"
+
+config BR2_LINUX_KERNEL_LZO
+       bool "lzo compression"
+
+config BR2_LINUX_KERNEL_XZ
+       bool "xz compression"
+
+endchoice
+
 config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
        string "Kernel image target name"
        depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
index 9507837c41de59a92f3a803d5fd556a80080595b..dd2cc4961788743b9b6d57ea4472e6e011c4601e 100644 (file)
@@ -56,7 +56,23 @@ LINUX_PATCHES = $(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
 LINUX_PATCH = $(filter ftp://% http://% https://%,$(LINUX_PATCHES))
 
 LINUX_INSTALL_IMAGES = YES
-LINUX_DEPENDENCIES += host-kmod host-lzop
+LINUX_DEPENDENCIES += host-kmod
+
+# host tools needed for kernel compression
+ifeq ($(BR2_LINUX_KERNEL_LZ4),y)
+LINUX_DEPENDENCIES += host-lz4
+else ifeq ($(BR2_LINUX_KERNEL_LZMA),y)
+LINUX_DEPENDENCIES += host-lzma
+else ifeq ($(BR2_LINUX_KERNEL_LZO),y)
+LINUX_DEPENDENCIES += host-lzop
+else ifeq ($(BR2_LINUX_KERNEL_XZ),y)
+LINUX_DEPENDENCIES += host-xz
+endif
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_GZIP) = CONFIG_KERNEL_GZIP
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZ4) = CONFIG_KERNEL_LZ4
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZMA) = CONFIG_KERNEL_LZMA
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZO) = CONFIG_KERNEL_LZO
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_XZ) = CONFIG_KERNEL_XZ
 
 ifeq ($(BR2_LINUX_KERNEL_UBOOT_IMAGE),y)
 LINUX_DEPENDENCIES += host-uboot-tools
@@ -181,6 +197,10 @@ LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
 define LINUX_KCONFIG_FIXUP_CMDS
        $(if $(LINUX_NEEDS_MODULES),
                $(call KCONFIG_ENABLE_OPT,CONFIG_MODULES,$(@D)/.config))
+       $(call KCONFIG_ENABLE_OPT,$(LINUX_COMPRESSION_OPT_y),$(@D)/.config)
+       $(foreach opt, $(LINUX_COMPRESSION_OPT_),
+               $(call KCONFIG_DISABLE_OPT,$(opt),$(@D)/.config)
+       )
        $(if $(BR2_arm)$(BR2_armeb),
                $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config))
        $(if $(BR2_TARGET_ROOTFS_CPIO),