From de8d66a294c54125b76c572b41c6e738cb35a4aa Mon Sep 17 00:00:00 2001 From: hcg Date: Fri, 10 Oct 2008 10:07:45 +0000 Subject: [PATCH] Adds support for using a local clone of a git tree git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12941 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- Config.in | 20 ++++++++++++++++++++ include/kernel-defaults.mk | 20 ++++++++++++++++---- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/Config.in b/Config.in index 95b9a4bc8..2e86d02cf 100644 --- a/Config.in +++ b/Config.in @@ -159,6 +159,26 @@ config EXTERNAL_KERNEL_TREE prompt "Use external kernel tree" if BUILDOPTS default "" +config KERNEL_GIT_CLONE_URI + string + prompt "Enter git repository to clone" if BUILDOPTS + default "" + help + Enter the full git repository path i.e.: + git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + This will create a git clone of the kernel in your build + directory. + + +config KERNEL_GIT_LOCAL_REPOSITORY + string + prompt "Enter path to local reference repository" if BUILDOPTS + default "" + help + Enter a full pathname to a local reference git repository. + In this instance, the --refererence option of git clone will + be used thus creating a quick local clone of your repo. + source "toolchain/Config.in" source "target/imagebuilder/Config.in" diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk index 90761bf01..46f7e0004 100644 --- a/include/kernel-defaults.mk +++ b/include/kernel-defaults.mk @@ -34,19 +34,31 @@ endif # defined in quilt.mk Kernel/Patch:=$(Kernel/Patch/Default) ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"") -define Kernel/Prepare/Default + ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"") + define Kernel/Prepare/Default bzcat $(DL_DIR)/$(LINUX_SOURCE) | $(TAR) -C $(KERNEL_BUILD_DIR) $(TAR_OPTIONS) $(Kernel/Patch) touch $(LINUX_DIR)/.quilt_used -endef -else + endef + else + ifeq ($(strip $(CONFIG_KERNEL_GIT_LOCAL_REPOSITORY)),"") define Kernel/Prepare/Default + git clone $(CONFIG_KERNEL_GIT_CLONE_URI) $(LINUX_DIR) + endef + else + define Kernel/Prepare/Default + git clone --reference $(CONFIG_KERNEL_GIT_LOCAL_REPOSITORY) $(CONFIG_KERNEL_GIT_CLONE_URI) $(LINUX_DIR) + endef + endif +endif +else + define Kernel/Prepare/Default mkdir -p $(KERNEL_BUILD_DIR) if [ -d $(LINUX_DIR) ]; then \ rmdir $(LINUX_DIR); \ fi ln -s $(CONFIG_EXTERNAL_KERNEL_TREE) $(LINUX_DIR) -endef + endef endif ifeq ($(KERNEL),2.6) -- 2.35.1