[Buildroot] LZMA in Buldroot.
Bernhard Fischer
rep.nop at aon.at
Wed Oct 4 16:20:28 UTC 2006
On Wed, Oct 04, 2006 at 04:40:46PM +0200, Thomas Lundquist wrote:
>On Wed, Oct 04, 2006 at 10:47:32AM +0200, Bernhard Fischer wrote:
>>
>> I'm curious why you moved it around? This should not be necessary, just
>> depend on lzma-host for $(image).lzma, like so:
>
>I wasn't sure about that myself but sstrip was done like this, so I
>moved it.
>
>I have no problems with making a patch that does not move it but why was
>sstrip done this way?
>
>the libraries are done from the package directory but they are the same
>in staging and target (except for stripping) but here we are talking
>about two sifferent binaries, one compiled for the host and one for the
>target.
>
>this was at least my guess on the reason behind putting sstrip in in the
>toolchain part.
We only have to make sure that we don't pickup the wrong objects, that
should be all.
>
>(my sstrip, or rather elfkickers package, which was never included in
>buildroot was in the package directory but then sstrip showed up in
>toolchain.)
>
>I've kept building of lzma-host in toolchain since we have to build two
>different sets.
Yes, that's fine.
>
>patch attached.
See comment below.
>
>
>
>Thomas.
>
>> +$(EXT2_BASE).lzma: lzma-host $(EXT2_BASE)
>> + $(STAGING_DIR)/bin/lzma -vc $(EXT2_BASE) > $(EXT2_BASE).lzma
>> +
>
>> Please send an updated patch.
>> TIA,
>> Bernhard
>>
>> >
>> >about initrd kernel patches; I've attached one for 2.6.15.4 but if there
>> >are interest I'll maintain patches for newer versions aswell.
>> >
>> >I also have patches for lzma compressed kernel but only for i386 (I need it
>> >for ARM but have met some challenges.).
>> >
>> >Thanks to Ming-Ching Tiew for making the kernel patches.
>> >
>> >
>> >Thomas.
>Index: target/ext2/ext2root.mk
>===================================================================
>--- target/ext2/ext2root.mk (revision 16306)
>+++ target/ext2/ext2root.mk (working copy)
>@@ -66,6 +66,10 @@
> EXT2_TARGET := $(EXT2_BASE)
> endif
>
>+ifeq ($(strip $(BR2_TARGET_ROOTFS_EXT2_LZMA)),y)
>+EXT2_TARGET := $(EXT2_BASE).lzma
>+endif
>+
> $(EXT2_BASE): host-fakeroot makedevs genext2fs
> - at find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
> @rm -rf $(TARGET_DIR)/usr/man
>@@ -102,6 +106,9 @@
> $(EXT2_BASE).gz: $(EXT2_BASE)
> @gzip --best -fv $(EXT2_BASE)
>
>+$(EXT2_BASE).lzma: lzma-host $(EXT2_BASE)
>+ @$(STAGING_DIR)/bin/lzma -vc $(EXT2_BASE) > $(EXT2_BASE).lzma
>+
reminds me that we may want to lzma the other filesystems too, later on.
> EXT2_COPYTO := $(strip $(subst ",,$(BR2_TARGET_ROOTFS_EXT2_COPYTO)))
> # " stupid syntax highlighting does not like unmatched quote from above line
>
>Index: package/lzma/lzma.mk
>===================================================================
>--- package/lzma/lzma.mk (revision 16306)
>+++ package/lzma/lzma.mk (working copy)
>@@ -6,7 +6,8 @@
> LZMA_VER:=4.32.0beta3
> LZMA_SOURCE:=lzma-$(LZMA_VER).tar.gz
> LZMA_SITE:=http://tukaani.org/lzma/
>-LZMA_DIR:=$(BUILD_DIR)/lzma-$(LZMA_VER)
>+LZMA_HOST_DIR:=$(TOOL_BUILD_DIR)/lzma-$(LZMA_VER)
>+LZMA_TARGET_DIR:=$(BUILD_DIR)/lzma-$(LZMA_VER)
> LZMA_CFLAGS:=$(TARGET_CFLAGS)
> ifeq ($(BR2_LARGEFILE),y)
> LZMA_CFLAGS+=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
>@@ -18,13 +19,47 @@
> $(DL_DIR)/$(LZMA_SOURCE):
> $(WGET) -P $(DL_DIR) $(LZMA_SITE)/$(LZMA_SOURCE)
>
>-$(LZMA_DIR)/.source: $(DL_DIR)/$(LZMA_SOURCE)
>- $(ZCAT) $(DL_DIR)/$(LZMA_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
>- toolchain/patch-kernel.sh $(LZMA_DIR) package/lzma/ lzma\*.patch
>- touch $(LZMA_DIR)/.source
>+######################################################################
>+#
>+# lzma host
>+#
>+######################################################################
>
>-$(LZMA_DIR)/.configured: $(LZMA_DIR)/.source
>- (cd $(LZMA_DIR); rm -f config.cache ;\
>+$(LZMA_HOST_DIR)/.source: $(DL_DIR)/$(LZMA_SOURCE)
>+ zcat $(DL_DIR)/$(LZMA_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
>+ toolchain/patch-kernel.sh $(LZMA_HOST_DIR) toolchain/lzma/ lzma\*.patch
>+ touch $(LZMA_HOST_DIR)/.source
>+
>+$(LZMA_HOST_DIR)/.configured: $(LZMA_HOST_DIR)/.source
>+ (cd $(LZMA_HOST_DIR); rm -f config.cache ;\
>+ CC="$(HOSTCC)" \
>+ ./configure \
>+ --prefix=/ \
>+ );
>+ touch $(LZMA_HOST_DIR)/.configured;
>+
>+$(LZMA_HOST_DIR)/src/lzma/lzma: $(LZMA_HOST_DIR)/.configured
>+ $(MAKE) -C $(LZMA_HOST_DIR) all
>+ touch -c $@
>+
>+$(STAGING_DIR)/bin/lzma: $(LZMA_HOST_DIR)/src/lzma/lzma
>+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(LZMA_HOST_DIR) install
>+
>+lzma_host: uclibc $(STAGING_DIR)/bin/lzma
>+
>+######################################################################
>+#
>+# lzma target
>+#
>+######################################################################
>+
>+$(LZMA_TARGET_DIR)/.source: $(DL_DIR)/$(LZMA_SOURCE)
>+ zcat $(DL_DIR)/$(LZMA_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
>+ toolchain/patch-kernel.sh $(LZMA_TARGET_DIR) toolchain/lzma/ lzma\*.patch
>+ touch $(LZMA_TARGET_DIR)/.source
>+
>+$(LZMA_TARGET_DIR)/.configured: $(LZMA_TARGET_DIR)/.source
>+ (cd $(LZMA_TARGET_DIR); rm -f config.cache ;\
> $(TARGET_CONFIGURE_OPTS) \
> CFLAGS="$(TARGET_CFLAGS) $(LZMA_CFLAGS)" \
> ac_cv_func_malloc_0_nonnull=yes \
>@@ -33,37 +68,31 @@
> --host=$(GNU_TARGET_NAME) \
> --build=$(GNU_HOST_NAME) \
> --prefix=/usr \
>- --exec-prefix=$(STAGING_DIR)/usr/bin \
>- --libdir=$(STAGING_DIR)/lib \
>- --includedir=$(STAGING_DIR)/include \
>+ --exec-prefix=$(TARGET_DIR)/usr/bin \
>+ --libdir=$(TARGET_DIR)/lib \
>+ --includedir=$(TARGET_DIR)/include \
> --disable-debug \
> $(DISABLE_NLS) \
> $(LZMA_LARGEFILE) \
> );
>- touch $(LZMA_DIR)/.configured;
>+ touch $(LZMA_TARGET_DIR)/.configured;
>
>-$(LZMA_DIR)/src/lzma/lzma: $(LZMA_DIR)/.configured
>- $(MAKE) -C $(LZMA_DIR) all
>+$(LZMA_TARGET_DIR)/src/lzma/lzma: $(LZMA_TARGET_DIR)/.configured
>+ $(MAKE) -C $(LZMA_TARGET_DIR) all
> touch -c $@
>
>-$(STAGING_DIR)/bin/lzma: $(LZMA_DIR)/src/lzma/lzma
>- -cp -dpf $(LZMA_DIR)/src/lzma/lzma $(STAGING_DIR)/bin/;
>- touch -c $(STAGING_DIR)/bin/lzma
>-
>-$(TARGET_DIR)/bin/lzma: $(STAGING_DIR)/bin/lzma
>- cp -dpf $(STAGING_DIR)/bin/lzma $(TARGET_DIR)/bin/;
>+$(TARGET_DIR)/usr/bin/lzma: $(LZMA_TARGET_DIR)/src/lzma/lzma
>+ -cp -dpf $(LZMA_TARGET_DIR)/src/lzma/lzma $(TARGET_DIR)/bin/;
> -$(STRIP) --strip-unneeded $(TARGET_DIR)/bin/lzma
> touch -c $(TARGET_DIR)/bin/lzma
>
>-#lzma-headers: $(TARGET_DIR)/bin/lzma
>+lzma_target: uclibc $(TARGET_DIR)/usr/bin/lzma
>
>-lzma: uclibc $(TARGET_DIR)/bin/lzma
>-
> lzma-source: $(DL_DIR)/$(LZMA_SOURCE)
>
> lzma-clean:
>- rm -f $(TARGET_DIR)/bin/lzma
>- -$(MAKE) -C $(LZMA_DIR) clean
>+ rm -f $(TARGET_DIR)/usr/bin/lzma
>+ -$(MAKE) -C $(LZMA_TARGET_DIR) clean
>
> lzma-dirclean:
> rm -rf $(LZMA_DIR)
>@@ -73,9 +102,9 @@
> # Toplevel Makefile options
> #
> #############################################################
>-ifeq ($(strip $(BR2_PACKAGE_LZMA)),y)
>-TARGETS+=lzma
>+ifeq ($(strip $(BR2_PACKAGE_LZMA_HOST)),y)
>+TARGETS+=lzma_host
> endif
>-#ifeq ($(strip $(BR2_PACKAGE_LZMA_TARGET_HEADERS)),y)
>-#TARGETS+=lzma-headers
>-#endif
Should be added as an option rather than removed..
lzma-headers: $(TARGET_DIR)/usr/bin/lzma
-cp -dpf the_lzma.h $(TARGET_DIR)/usr/include/
thanks,
>+ifeq ($(strip $(BR2_PACKAGE_LZMA_TARGET)),y)
>+TARGETS+=lzma_target
>+endif
>Index: package/lzma/Config.in
>===================================================================
>--- package/lzma/Config.in (revision 16306)
>+++ package/lzma/Config.in (working copy)
>@@ -1,14 +1,15 @@
>-config BR2_PACKAGE_LZMA
>- bool "lzma"
>+config BR2_PACKAGE_LZMA_TARGET
>+ bool "Install lzma for the target system"
> default n
> help
>- Compression utility.
>+ lzma utils on the target
>
> http://tukaani.org/lzma/
>
>-config BR2_PACKAGE_LZMA_TARGET_HEADERS
>- bool "lzma headers in target"
>+config BR2_PACKAGE_LZMA_HOST
>+ bool "Install lzma for the host/build system"
> default n
>- depends on BR2_PACKAGE_LZMA
> help
>- Put headers files in the target.
>+ lzma utils
>+
>+ http://tukaani.org/lzma/
>_______________________________________________
>buildroot mailing list
>buildroot at uclibc.org
>http://busybox.net/mailman/listinfo/buildroot
More information about the buildroot
mailing list