# 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 branch in the remote repository
ifeq ($(XEN_LINUX_GIT_REMOTEBRANCH),)
.ERROR: XEN_LINUX_GIT_REMOTEBRANCH not specified
endif

XEN_GIT_ORIGIN ?= xen

XEN_LINUX_GIT_LOCALBRANCH ?= $(XEN_LINUX_GIT_REMOTEBRANCH)

# Set XEN_LINUX_GITREV to update to a particlar revision.
XEN_LINUX_GITREV  ?= $(XEN_GIT_ORIGIN)/$(XEN_LINUX_GIT_REMOTEBRANCH)

$(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE)
	set -ex; \
	if ! [ -d $(LINUX_SRCDIR) ]; then \
		rm -rf $(LINUX_SRCDIR) $(LINUX_SRCDIR).tmp; \
		mkdir $(LINUX_SRCDIR).tmp; rmdir $(LINUX_SRCDIR).tmp; \
		$(GIT) clone -o $(XEN_GIT_ORIGIN) -n $(XEN_LINUX_GIT_URL) $(LINUX_SRCDIR).tmp; \
		(cd $(LINUX_SRCDIR).tmp; git checkout -b $(XEN_LINUX_GIT_LOCALBRANCH) $(XEN_LINUX_GITREV) ); \
		mv $(LINUX_SRCDIR).tmp $(LINUX_SRCDIR); \
	fi
	touch $@
