Adds support for using a local clone of a git tree
authorhcg <hcg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 10 Oct 2008 10:07:45 +0000 (10:07 +0000)
committerhcg <hcg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 10 Oct 2008 10:07:45 +0000 (10:07 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12941 3c298f89-4303-0410-b956-a3cf2f4a3e73

Config.in
include/kernel-defaults.mk

index 95b9a4bc82aff91a89c5036e34f3a2a0ce688f00..2e86d02cf55ce01f43efeac05fff2289e149b7fa 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -159,6 +159,26 @@ config EXTERNAL_KERNEL_TREE
        prompt "Use external kernel tree" if BUILDOPTS
        default ""
 
        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"
 source "toolchain/Config.in"
 
 source "target/imagebuilder/Config.in"
index 90761bf014944177854a1c914931665022de166d..46f7e000460e3431762456593a39141c0ccc855c 100644 (file)
@@ -34,19 +34,31 @@ endif
 # defined in quilt.mk
 Kernel/Patch:=$(Kernel/Patch/Default)
 ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
 # 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
        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
 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)
        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)
 endif
 
 ifeq ($(KERNEL),2.6)