2
1
Эх сурвалжийг харах

Ensure lzma is built *before* linux, allow system installation in /usr/local/bin

Ulf Samuelsson 18 жил өмнө
parent
commit
0a9af49e0b

+ 9 - 0
package/lzma/lzma.mk

@@ -48,11 +48,20 @@ $(STAGING_DIR)/bin/lzma: $(LZMA_HOST_DIR)/src/lzma/lzma
 		$(STAGING_DIR)/lib/liblzmadec.la
 
 lzma-host: $(STAGING_DIR)/bin/lzma
+
 lzma-host-clean:
 	rm -f $(STAGING_DIR)/bin/lzma
 	-$(MAKE) -C $(LZMA_HOST_DIR) clean
 lzma-host-dirclean:
 	rm -rf $(LZMA_HOST_DIR)
+
+/usr/local/bin/lzma:	lzma_host
+	sudo 	$(MAKE) DESTDIR=/usr/local -C $(LZMA_HOST_DIR) install
+	sudo	$(SED) "s,^libdir=.*,libdir=\'/usr/local/lib\',g" \
+		/usr/local/lib/liblzmadec.la
+
+lzma-host-install:	/usr/local/bin/lzma
+
 ######################################################################
 #
 # lzma target

+ 9 - 1
target/linux/Makefile.in

@@ -59,6 +59,14 @@ ifndef	LINUX26_KERNEL
 LINUX26_KERNEL=$(BINARIES_DIR)/linux-kernel-$(LINUX26_VERSION)-$(KERNEL_ARCH)
 endif
 
+ifeq ($(BR2_KERNEL_HEADERS_LZMA),y)
+ifeq ($(BR2_KERNEL_HEADERS_LZMA_INSTALL),y)
+DEPEND_ON_HOST_LZMA:=lzma-host-install
+else
+DEPEND_ON_HOST_LZMA:=lzma-host
+endif
+endif
+
 # Version of Linux AFTER patches
 LINUX26_DIR=$(BUILD_DIR)/linux-$(LINUX26_VERSION)
 
@@ -150,7 +158,7 @@ linux26-menuconfig: $(LINUX26_DIR)/.patched host-sed
 	$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig
 	-[ -f $(LINUX26_DIR)/.config ] && touch $(LINUX26_DIR)/.configured
 
-linux26: $(INITRAMFS_TARGET) $(LINUX26_KERNEL)
+linux26: $(DEPEND_ON_HOST_LZMA) $(INITRAMFS_TARGET) $(LINUX26_KERNEL)
 
 $(LINUX26_DIR)/.modules_installed: $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/modules.dep
 	touch $@

+ 11 - 0
toolchain/kernel-headers/Config.in

@@ -66,6 +66,17 @@ config BR2_KERNEL_HEADERS_LZMA
 	  initramfs filesystems.  This requires the lzma
 	  program in your development environment.
 
+config BR2_KERNEL_HEADERS_LZMA_INSTALL
+	bool "Install lzma in /usr/local/bin (Requires system password) for sudo"
+	default n
+	help
+	  Install the lzma package in the /usr/local/bin directory
+	  so it is available for future builds.  This requires sudo.
+	  If you do not know the system password you should not set
+	  this option. If you do not have lzma installed the only way
+	  to complete the linux build, ifl you apply the lzma patches
+	  is to have '$(STAGING_DIR)/usr/bin' in your path.
+
 config BR2_DEFAULT_KERNEL_HEADERS
 	string
 	default "2.4.25"    if BR2_KERNEL_HEADERS_2_4_25