[Buildroot] [PATCH] buildroot:linux: Add options to checkout Linux kernel source from SVN or GIT repository.
Sonic Zhang
sonic.adi at gmail.com
Tue Dec 14 09:12:01 UTC 2010
Please ignore this patch. I will send out a new version.
Sonic Zhang
On Tue, Dec 14, 2010 at 1:29 PM, Sonic Zhang <sonic.adi at gmail.com> wrote:
> From: Sonic Zhang <sonic.zhang at analog.com>
>
> Current buildroot Config.in and linux.mk don't support kernel source in SVN
> or GIT repository. A pre-checkouted local SVN or GIT kernel tree set in
> KERNEL_CUSTOM_TREE is the only option. Because the local path can be anywhere,
> no buildroot default config file can be defined in sub folder
> target/device/company/boards to run quick building. It is inconvient to run
> regression testing. Since buildroot has already support SVN and GIT repository
> for application packages, it is reasonable to have it for linux kernel as well.
>
> Signed-off-by: Sonic Zhang <sonic.zhang at analog.com>
> ---
> linux/Config.in | 19 ++++++++++++++++++-
> linux/linux.mk | 24 +++++++++++++++++++++++-
> 2 files changed, 41 insertions(+), 2 deletions(-)
>
> diff --git a/linux/Config.in b/linux/Config.in
> index 480adca..07b08e2 100644
> --- a/linux/Config.in
> +++ b/linux/Config.in
> @@ -52,6 +52,10 @@ config BR2_LINUX_KERNEL_CUSTOM_TREE
> help
> This option allows use of an already unpacked linux tree.
>
> +config BR2_LINUX_KERNEL_CUSTOM_REPOSITORY
> + bool "Custom source repository"
> + help
> + This option allows to specify the svn or git repository.
> endchoice
>
> config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
> @@ -67,12 +71,25 @@ config BR2_LINUX_KERNEL_CUSTOM_PATH
> string "PATH of custom kernel tree"
> depends on BR2_LINUX_KERNEL_CUSTOM_TREE
>
> +config BR2_LINUX_KERNEL_CUSTOM_REPOSITORY_LOCATION
> + string "URL of custom kernel repository"
> + depends on BR2_LINUX_KERNEL_CUSTOM_REPOSITORY
> + help
> + This is either the clone URL of GIT or trunk/tag/branch URL of SVN.
> +
> +config BR2_LINUX_KERNEL_CUSTOM_REPOSITORY_VERSION
> + string "revision(svn/git), tag(git) or branch(git) of custom kernel source"
> + depends on BR2_LINUX_KERNEL_CUSTOM_REPOSITORY
> + default "HEAD"
> + help
> + Tag or branch of GIT repository should be filled in here.
> +
> config BR2_LINUX_KERNEL_VERSION
> string
> default "2.6.36" if BR2_LINUX_KERNEL_2_6_36
> default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS
> default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE if BR2_LINUX_KERNEL_CUSTOM_VERSION
> - default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL || BR2_LINUX_KERNEL_CUSTOM_TREE
> + default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL || BR2_LINUX_KERNEL_CUSTOM_TREE || BR2_LINUX_KERNEL_CUSTOM_REPOSITORY
>
> #
> # Patch selection
> diff --git a/linux/linux.mk b/linux/linux.mk
> index 4b680fd..55fddfa 100644
> --- a/linux/linux.mk
> +++ b/linux/linux.mk
> @@ -7,11 +7,33 @@ LINUX26_VERSION=$(call qstrip,$(BR2_LINUX_KERNEL_VERSION))
>
> # Compute LINUX26_SOURCE and LINUX26_SITE from the configuration
> ifeq ($(LINUX26_VERSION),custom)
> +
> +ifeq ($(BR2_LINUX_KERNEL_CUSTOM_REPOSITORY),y)
> +PKG:=LINUX26
> +LINUX26_SITE:=$(call qstrip, $(BR2_LINUX_KERNEL_CUSTOM_REPOSITORY_LOCATION))
> +LINUX26_DL_VERSION:=$(call qstrip, $(BR2_LINUX_KERNEL_CUSTOM_REPOSITORY_VERSION))
> +
> +ifeq ($(findstring svn://,$(LINUX26_SITE)),svn://)
> +LINUX26_SITE_METHOD:=svn
> +LINUX26_DL_DIR:=linux-$(notdir $(LINUX26_SITE))
> +else
> +LINUX26_SITE_METHOD:=git
> +LINUX26_DL_DIR:=linux-$(call qstrip, $(BR2_LINUX_KERNEL_CUSTOM_REPOSITORY_VERSION))
> +LINUX26_BRANCH:=$(LINUX26_DL_VERSION)
> +endif
> +
> +LINUX26_BASE_NAME:=$(LINUX26_DL_DIR)
> +LINUX26_SOURCE:=$(LINUX26_DL_DIR).tar.gz
> +else
> +
> ifneq ($(BR2_LINUX_KERNEL_CUSTOM_TREE),y)
> LINUX26_TARBALL:=$(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION))
> LINUX26_SITE:=$(dir $(LINUX26_TARBALL))
> -LINUX26_SOURCE:=$(notdir $(LINUX26_TARBALL))
> +LINUX26_SOURCE:=linux-$(notdir $(LINUX26_TARBALL))
> endif
> +
> +endif
> +
> else
> LINUX26_SOURCE:=linux-$(LINUX26_VERSION).tar.bz2
> LINUX26_SITE:=$(BR2_KERNEL_MIRROR)/linux/kernel/v2.6/
> --
> 1.6.0
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
More information about the buildroot
mailing list