Procházet zdrojové kódy

Adds support for using a local clone of a git tree

SVN-Revision: 12941
Hamish Guthrie před 17 roky
rodič
revize
86ac8bc7ea
2 změnil soubory, kde provedl 36 přidání a 4 odebrání
  1. 20 0
      Config.in
  2. 16 4
      include/kernel-defaults.mk

+ 20 - 0
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"

+ 16 - 4
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)