barebox: add support for custom version, tarball, git and patch dir
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Sat, 17 Sep 2011 20:23:08 +0000 (22:23 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Sun, 18 Sep 2011 20:06:51 +0000 (22:06 +0200)
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
boot/barebox/Config.in
boot/barebox/barebox.mk

index a821c45c00f7168aa5ceaefe7d5a903f22ab81c9..87bf39b4de3984435f033864461fcd270247ef9b 100644 (file)
@@ -6,6 +6,59 @@ menuconfig BR2_TARGET_BAREBOX
          http://www.barebox.org
 
 if BR2_TARGET_BAREBOX
+choice
+       prompt "version"
+       default BR2_TARGET_BAREBOX_2011_09
+       help
+         Select the specific Barebox version you want to use
+
+config BR2_TARGET_BAREBOX_2011_08
+       bool "2011.08"
+
+config BR2_TARGET_BAREBOX_2011_09
+       bool "2011.09"
+
+config BR2_TARGET_BAREBOX_CUSTOM_TARBALL
+       bool "Custom tarball"
+
+config BR2_TARGET_BAREBOX_CUSTOM_GIT
+       bool "Custom Git repository"
+
+endchoice
+
+if BR2_TARGET_BAREBOX_CUSTOM_TARBALL
+
+config BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION
+       string "URL of custom Barebox tarball"
+
+endif
+
+config BR2_TARGET_BAREBOX_VERSION
+       string
+       default "2011.08.0"     if BR2_TARGET_BAREBOX_2011_08
+       default "2011.09.0"     if BR2_TARGET_BAREBOX_2011_09
+       default "custom"        if BR2_TARGET_BAREBOX_CUSTOM_TARBALL
+       default $BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION if BR2_TARGET_BAREBOX_CUSTOM_GIT
+
+config BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR
+       string "custom patch dir"
+       help
+         If your board requires custom patches, add the path to the
+         directory containing the patches here. The patches must be
+         named barebox-<version>-<something>.patch.
+
+         Most users may leave this empty
+
+if BR2_TARGET_BAREBOX_CUSTOM_GIT
+
+config BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL
+       string "URL of custom Git repository"
+
+config BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION
+       string "Custom Git version"
+
+endif
+
 config BR2_TARGET_BAREBOX_BOARD_DEFCONFIG
        string "board defconfig"
        help
index 0dfcff34c8592b1e994f2d2e22eb4b471a60b913..8826ef901e803fe2fedd109321fad2d5dcb24c81 100644 (file)
@@ -4,9 +4,30 @@
 #
 #############################################################
 
-BAREBOX_VERSION = 2011.09.0
+BAREBOX_VERSION    = $(call qstrip,$(BR2_TARGET_BAREBOX_VERSION))
+
+ifeq ($(BAREBOX_VERSION),custom)
+# Handle custom Barebox tarballs as specified by the configuration
+BAREBOX_TARBALL = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION))
+BAREBOX_SITE    = $(dir $(BAREBOX_TARBALL))
+BAREBOX_SOURCE  = $(notdir $(BAREBOX_TARBALL))
+else ifeq ($(BR2_TARGET_BAREBOX_CUSTOM_GIT),y)
+BAREBOX_SITE        = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL))
+BAREBOX_SITE_METHOD = git
+else
+# Handle stable official Barebox versions
 BAREBOX_SOURCE = barebox-$(BAREBOX_VERSION).tar.bz2
 BAREBOX_SITE = http://www.barebox.org/download/
+endif
+
+ifneq ($(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR)),)
+define BAREBOX_APPLY_CUSTOM_PATCHES
+       toolchain/patch-kernel.sh $(@D) $(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR) \
+               barebox-$(BAREBOX_VERSION)-\*.patch
+endef
+
+BAREBOX_POST_PATCH_HOOKS += BAREBOX_APPLY_CUSTOM_PATCHES
+endif
 
 BAREBOX_INSTALL_IMAGES = YES
 ifneq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)