# Mercurial
HG ?= hg

LINUX_SRCDIR ?= linux-$(LINUX_VER)-xen.hg

# Repository to clone.
XEN_LINUX_HGREPO ?= $$(sh buildconfigs/select-repository $(LINUX_SRCDIR) $(LINUX_SRC_PATH))

# Set XEN_LINUX_HGREV to update to a particlar revision.
XEN_LINUX_HGREV  ?= tip

$(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE)
	set -e ; \
	if [ ! -e $(LINUX_SRCDIR)/.hg ] ; then \
	    __repo=$(XEN_LINUX_HGREPO) ; \
	    if [ -d $${__repo} ] ; then \
	        echo "Linking $${__repo} to $(LINUX_SRCDIR)." ; \
	        ln -s $${__repo} $(LINUX_SRCDIR) ; \
	    else \
	        echo "Cloning $${__repo} to $(LINUX_SRCDIR)." ; \
	        $(HG) clone $${__repo#file://} $(LINUX_SRCDIR) ; \
	    fi ; \
	else \
	    __parent=$$($(HG) -R $(LINUX_SRCDIR) path default) ; \
	    echo "Pulling changes from $${__parent} into $(LINUX_SRCDIR)." ; \
	    $(HG) -R $(LINUX_SRCDIR) pull $${__parent} ; \
	fi
	set -e ; if [ -n "$(XEN_LINUX_HGREV)" ] ; then \
	    echo "Updating $(LINUX_SRCDIR) to revision $(XEN_LINUX_HGREV)." ; \
	    ( cd $(LINUX_SRCDIR) && $(HG) update $(XEN_LINUX_HGREV) ); \
	fi
	touch $@
