Adds support for using a local clone of a git tree

SVN-Revision: 12941
This commit is contained in:
Hamish Guthrie 2008-10-10 10:07:45 +00:00
parent 6e85059256
commit 86ac8bc7ea
2 changed files with 36 additions and 4 deletions

View File

@ -159,6 +159,26 @@ config EXTERNAL_KERNEL_TREE
prompt "Use external kernel tree" if BUILDOPTS prompt "Use external kernel tree" if BUILDOPTS
default "" 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 "toolchain/Config.in"
source "target/imagebuilder/Config.in" source "target/imagebuilder/Config.in"

View File

@ -34,19 +34,31 @@ endif
# defined in quilt.mk # defined in quilt.mk
Kernel/Patch:=$(Kernel/Patch/Default) Kernel/Patch:=$(Kernel/Patch/Default)
ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"") 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) bzcat $(DL_DIR)/$(LINUX_SOURCE) | $(TAR) -C $(KERNEL_BUILD_DIR) $(TAR_OPTIONS)
$(Kernel/Patch) $(Kernel/Patch)
touch $(LINUX_DIR)/.quilt_used touch $(LINUX_DIR)/.quilt_used
endef endef
else 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) mkdir -p $(KERNEL_BUILD_DIR)
if [ -d $(LINUX_DIR) ]; then \ if [ -d $(LINUX_DIR) ]; then \
rmdir $(LINUX_DIR); \ rmdir $(LINUX_DIR); \
fi fi
ln -s $(CONFIG_EXTERNAL_KERNEL_TREE) $(LINUX_DIR) ln -s $(CONFIG_EXTERNAL_KERNEL_TREE) $(LINUX_DIR)
endef endef
endif endif
ifeq ($(KERNEL),2.6) ifeq ($(KERNEL),2.6)