From f7de9bf6150d2453e68b75725b476a5d012dce5a Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Wed, 29 Nov 2006 19:16:48 +0000 Subject: - provide a choice to select the compressor to use for the final rootfs. Closes #1014 --- target/tar/Config.in | 43 +++++++++++++++++++++++++++++++++++++++---- target/tar/tarroot.mk | 19 +++++++++++++++++++ 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/target/tar/Config.in b/target/tar/Config.in index 89640745d..9a0b80560 100644 --- a/target/tar/Config.in +++ b/target/tar/Config.in @@ -4,11 +4,46 @@ config BR2_TARGET_ROOTFS_TAR help Build a tar archive of the root filesystem +choice + prompt "Compression method" + default BR2_TARGET_ROOTFS_TAR_NONE + depends on BR2_TARGET_ROOTFS_TAR + help + Select compressor for tar archive of the root filesystem + +config BR2_TARGET_ROOTFS_TAR_NONE + bool "no compression" + help + Do not compress the tarball. + +config BR2_TARGET_ROOTFS_TAR_GZIP + bool "gzip" + help + Do compress the tarball with gzip. + Note that you either have to have gzip installed on your host + or select to build a gzip for your host. See the packages submenu. + +config BR2_TARGET_ROOTFS_TAR_BZIP2 + bool "bzip2" + help + Do compress the tarball with bzip2. + Note that you either have to have bzip2 installed on your host + or select to build a bzip2 for your host. See the packages submenu. + +config BR2_TARGET_ROOTFS_TAR_LZMA + bool "lzma" + help + Do compress the tarball with lzma. + Note that you either have to have lzma installed on your host + or select to build a lzma for your host. See the packages submenu. + +endchoice + config BR2_TARGET_ROOTFS_TAR_OPTIONS - string "random options to pass to tar" + string "other random options to pass to tar" depends on BR2_TARGET_ROOTFS_TAR default "" help - Common options: - j - compress with bzip2 - z - compress with gzip + Any other flags you want to pass to tar + Refer to tar --help for details + diff --git a/target/tar/tarroot.mk b/target/tar/tarroot.mk index bfd40662e..d5a626e0e 100644 --- a/target/tar/tarroot.mk +++ b/target/tar/tarroot.mk @@ -7,6 +7,21 @@ TAR_OPTS:=$(strip $(BR2_TARGET_ROOTFS_TAR_OPTIONS)) TAR_TARGET:=$(IMAGE).tar +TAR_COMPRESSOR:= +TAR_COMPRESSOR_EXT:=.none +ifeq ($(BR2_TARGET_ROOTFS_TAR_GZIP),y) +TAR_COMPRESSOR:=gzip -9 +TAR_COMPRESSOR_EXT:=gz +endif +ifeq ($(BR2_TARGET_ROOTFS_TAR_BZIP2),y) +TAR_COMPRESSOR:=bzip2 -9 +TAR_COMPRESSOR_EXT:=bz2 +endif +ifeq ($(BR2_TARGET_ROOTFS_TAR_LZMA),y) +TAR_COMPRESSOR:=lzma -9 +TAR_COMPRESSOR_EXT:=lzma +endif + tarroot: host-fakeroot makedevs -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true; @rm -rf $(TARGET_DIR)/usr/man @@ -25,6 +40,10 @@ tarroot: host-fakeroot makedevs >> $(STAGING_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) chmod a+x $(STAGING_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) $(STAGING_DIR)/usr/bin/fakeroot -- $(STAGING_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) +ifneq ($(TAR_COMPRESSOR),) + -rm -f $(TAR_TARGET).$() + PATH="$(STAGING_DIR)/sbin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/sbin:$(STAGING_DIR)/usr/bin:$(PATH)" $(TAR_COMPRESSOR) $(TAR_TARGET) +endif -@rm -f $(STAGING_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) tarroot-source: -- cgit v1.2.3