Files
xen/buildconfigs/src.git-clone
T
Keir Fraser 041f09c60d [BUILD] Support cloning Linux tree from a git repository.
Integrate the linux-2.6-tip tree as linux-2.6-tip-latest

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2008-07-03 10:45:46 +01:00

61 lines
1.8 KiB
Plaintext

# Mercurial
GIT ?= git
LINUX_SRCDIR ?= linux-$(LINUX_VER).git
# The URL of the remote GIT repository
ifeq ($(XEN_LINUX_GIT_URL),)
.ERROR: XEN_LINUX_GIT_URL not specified
endif
# The name to use for the remote repository
XEN_LINUX_GIT_REMOTENAME ?= origin
# The branch in the remote repository
ifeq ($(XEN_LINUX_GIT_REMOTEBRANCH),)
.ERROR: XEN_LINUX_GIT_REMOTEBRANCH not specified
endif
XEN_LINUX_GIT_LOCALBRANCH ?= master
# Set XEN_LINUX_GITREV to update to a particlar revision.
XEN_LINUX_GITREV ?=
$(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE)
@set -e ; if [ -d $(LINUX_SRCDIR) ] && [ ! -d $(GIT_DIR) ] ; then \
echo "$(LINUX_SRCDIR) exists but is not a git repository." 1>&2 ; \
false ; \
fi
@set -e ; if [ ! -e $(LINUX_SRCDIR)/.git ] ; then \
mkdir $(LINUX_SRCDIR) ; \
cd $(LINUX_SRCDIR) ; \
$(GIT) init-db ; \
fi
@set -e ; cd $(LINUX_SRCDIR) ; \
if ! $(GIT) remote | grep -q $(XEN_LINUX_GIT_REMOTENAME) ; then \
echo "Adding remote git repository \`$(XEN_LINUX_GIT_URL)' as \`$(XEN_LINUX_GIT_REMOTENAME)'" ; \
$(GIT) remote add $(XEN_LINUX_GIT_REMOTENAME) $(XEN_LINUX_GIT_URL) ; \
fi
@echo "Updating remote \`$(XEN_LINUX_GIT_REMOTENAME)'"
@cd $(LINUX_SRCDIR) && $(GIT) fetch $(XEN_LINUX_GIT_REMOTENAME)
@set -e ; cd $(LINUX_SRCDIR) ; \
if ! $(GIT) branch -l | grep -q $(XEN_LINUX_GIT_LOCALBRANCH) ; then \
$(GIT) branch --track $(XEN_LINUX_GIT_LOCALBRANCH) \
$(XEN_LINUX_GIT_REMOTENAME)/$(XEN_LINUX_GIT_REMOTEBRANCH) ; \
$(GIT) checkout ; \
fi
@ set -e ; cd $(LINUX_SRCDIR) ; \
if [ -n "$(XEN_LINUX_GITREV)" ] ; then \
echo "Updating $(LINUX_SRCDIR) to revision \'$(XEN_LINUX_GITREV)'." ; \
$(GIT) reset --hard $(XEN_LINUX_GITREV) ; \
else \
$(GIT) reset --hard $(XEN_LINUX_GIT_REMOTENAME)/$(XEN_LINUX_GIT_REMOTEBRANCH) ; \
fi
touch $@