From fbc9cef80bf95ab3e0197affed5b30215bef353a Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Tue, 5 Jun 2007 08:57:53 +0100 Subject: BUILD: Clone the Linux tree if it wasn't found via $(LINUX_SRC_PATH) even if it happens to be a local directory. If we located the Linux tree by deriving the path from "hg path default" and it is a local path then prepend "file://" to prevent us trying to symlink it. Unfortunately mercurial doesn't understand file:// URLs so we have to strip it off again before calling hg clone. Signed-off-by: Ian Campbell --- buildconfigs/select-repository | 11 ++++++++++- buildconfigs/src.hg-clone | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'buildconfigs') diff --git a/buildconfigs/select-repository b/buildconfigs/select-repository index db46049adb..ef1df59ac3 100755 --- a/buildconfigs/select-repository +++ b/buildconfigs/select-repository @@ -45,5 +45,14 @@ if [ $? -ne 0 ] || [ X"$XEN" = "X" ] ; then fi echo "$ME: Found ${BASE}/${REPO}" 1>&2 -echo ${BASE}/${REPO} + +# If ${BASE}/${REPO} is a local directory then prepend file:// so that +# the test in src.hg-clone will fail and we will clone instead of +# linking this repository. We only want to link repositories which +# were found via LINUX_SRC_PATH. +if [ -d "${BASE}/${REPO}" ] ; then + echo "file://${BASE}/${REPO}" +else + echo ${BASE}/${REPO} +fi exit 0 diff --git a/buildconfigs/src.hg-clone b/buildconfigs/src.hg-clone index d3696172d0..e1d7913c61 100644 --- a/buildconfigs/src.hg-clone +++ b/buildconfigs/src.hg-clone @@ -28,7 +28,7 @@ $(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE) ln -s $${__repo} $(LINUX_SRCDIR) ; \ else \ echo "Cloning $${__repo} to $(LINUX_SRCDIR)." ; \ - $(HG) clone $${__repo} $(LINUX_SRCDIR) ; \ + $(HG) clone $${__repo#file://} $(LINUX_SRCDIR) ; \ fi ; \ else \ __parent=$$($(HG) -R $(LINUX_SRCDIR) path default) ; \ -- cgit v1.2.3