u-boot: re-add infrastructure to specify custom tarball
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 12 Jun 2010 11:18:04 +0000 (13:18 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 12 Jun 2010 11:23:48 +0000 (13:23 +0200)
The bootloader being very specific to the hardware, being able to
build U-Boot from an arbitrary tarball available on the web might be
needed.

Therefore, for U-Boot, we provide two methods :

 * Get a given stable version from U-Boot official FTP server

 * Get an arbitrary tarball

This should hopefully satisfy most needs, without complicating too
much the U-Boot build procedure on Buildroot side.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
boot/u-boot/Config.in
boot/u-boot/u-boot.mk

index a4f5fd954202f178f54bd41de9924d6e5cfd2381..79c5c3da7447e7d2ae974743fb7b30f381fd108b 100644 (file)
@@ -25,13 +25,24 @@ config BR2_TARGET_UBOOT_2009_11
 config BR2_TARGET_UBOOT_2009_08
        bool "u-boot-2009.08"
 
+config BR2_TARGET_UBOOT_CUSTOM_TARBALL
+       bool "Custom tarball"
+
 endchoice
 
+if BR2_TARGET_UBOOT_CUSTOM_TARBALL
+
+config BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION
+       string "URL of custom U-Boot tarball"
+
+endif
+
 config BR2_UBOOT_VERSION
        string
        default "2010.03"       if BR2_TARGET_UBOOT_2010_03
        default "2009.11"       if BR2_TARGET_UBOOT_2009_11
        default "2009.08"       if BR2_TARGET_UBOOT_2009_08
+       default "custom"        if BR2_TARGET_UBOOT_CUSTOM_TARBALL
 
 config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR
        string "custom patch dir"
index 90a45b87f9a181162da1f8f6633632c308ded94e..ee566112fc4310019a6ab6013633ab969961a42b 100644 (file)
@@ -14,9 +14,17 @@ ifeq ($(U_BOOT_VERSION),)
 U_BOOT_VERSION=2010.03
 endif
 
+ifeq ($(U_BOOT_VERSION),custom)
+# Handle custom U-Boot tarballs as specified by the configuration
+U_BOOT_TARBALL=$(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION))
+U_BOOT_SITE:=$(dir $(U_BOOT_TARBALL))
+U_BOOT_SOURCE:=$(notdir $(U_BOOT_TARBALL))
+else
+# Handle stable official U-Boot versions
+U_BOOT_SITE:=ftp://ftp.denx.de/pub/u-boot
 U_BOOT_SOURCE:=u-boot-$(U_BOOT_VERSION).tar.bz2
+endif
 
-U_BOOT_SITE:=ftp://ftp.denx.de/pub/u-boot
 U_BOOT_DIR:=$(BUILD_DIR)/u-boot-$(U_BOOT_VERSION)
 U_BOOT_CAT:=$(BZCAT)
 U_BOOT_BIN:=u-boot.bin
@@ -51,9 +59,9 @@ $(DL_DIR)/$(U_BOOT_SOURCE):
         $(call DOWNLOAD,$(U_BOOT_SITE),$(U_BOOT_SOURCE))
 
 $(U_BOOT_DIR)/.unpacked: $(DL_DIR)/$(U_BOOT_SOURCE)
-       $(U_BOOT_CAT) $(DL_DIR)/$(U_BOOT_SOURCE) \
-               | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-       mkdir -p $(U_BOOT_DIR)
+       mkdir -p $(@D)
+       $(INFLATE$(suffix $(U_BOOT_SOURCE))) $(DL_DIR)/$(U_BOOT_SOURCE) \
+               | tar $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
        touch $@
 
 $(U_BOOT_DIR)/.patched: $(U_BOOT_DIR)/.unpacked