Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Bernhard Fischer <rep.nop@aon.at>
To: buildroot@busybox.net
Subject: [Buildroot] LZMA in Buldroot.
Date: Wed, 4 Oct 2006 18:20:28 +0200	[thread overview]
Message-ID: <20061004162028.GA18682@aon.at> (raw)
In-Reply-To: <20061004144046.GA32537@zelow.no>

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

  reply	other threads:[~2006-10-04 16:20 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-03 17:30 [Buildroot] LZMA in Buldroot Thomas Lundquist
     [not found] ` <20061004084732.GA15165@aon.at>
2006-10-04 14:40   ` Thomas Lundquist
2006-10-04 16:20     ` Bernhard Fischer [this message]
2006-10-04 16:37       ` Thomas Lundquist
2006-10-04 19:26         ` Bernhard Fischer
2006-10-05  7:29           ` Thomas Lundquist
2006-10-05  8:18             ` Bernhard Fischer
     [not found]               ` <20061006061248.GA2458@zelow.no>
     [not found]                 ` <20061006081808.GA5591@aon.at>
     [not found]                   ` <20061006105147.GA7047@zelow.no>
2006-11-04 19:21                     ` Bernhard Fischer
2006-10-05 17:40           ` Rob Landley
2006-10-05 17:50             ` Bernhard Fischer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061004162028.GA18682@aon.at \
    --to=rep.nop@aon.at \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox