|
From: | Michael Roth |
Subject: | Re: [Qemu-trivial] [PATCH] Makefile: fix out-of-tree builds |
Date: | Mon, 25 Jul 2011 08:57:52 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux i686 on x86_64; rv:5.0) Gecko/20110624 Thunderbird/5.0 |
On 07/25/2011 07:43 AM, Stefan Hajnoczi wrote:
On Mon, Jul 25, 2011 at 1:16 PM, Michael Roth<address@hidden> wrote:On 07/25/2011 05:15 AM, Stefan Hajnoczi wrote:On Thu, Jul 21, 2011 at 5:41 AM, Alexandre Raymond<address@hidden> wrote:This patch fixes a minor bugs which prevented QEMU from being built out of tree. Signed-off-by: Alexandre Raymond<address@hidden> --- Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)I don't normally use --source-path but it still seems broken to me after applying your patch? $ cd /tmp; mkdir out; cd out $ ~/qemu/configure --source-path=$HOME/qemu $ make GEN config-all-devices.mak cat: i386-softmmu/config-devices.mak: No such file or directory cat: x86_64-softmmu/config-devices.mak: No such file or directory cat: alpha-softmmu/config-devices.mak: No such file or directory StefanWorks okay for me with and without the patch if I do a `make distclean` in $HOME/qemu beforehand. Not sure what the trigger is for the breakage Alexandre is trying to address.You are right that make distclean in the source directory solves the issue. Intuitively I expect ./configure to re-wire things, make distclean should not be necessary. Alexandre: Can you describe the case where you hit a build issue in more detail? Stefan
The root problem seems to be that by including $(SRC_DIR) in VPATH (via $(call set-vpath, $(SRC_PATH):$(SRC_PATH)/hw)), $(SRC_DIR) ends up being searched for source files as well as target dependencies. So any crud left in there can still satisfy dependencies when building outside $SRC_PATH. I'm not sure there's a simple way around this except to prefix all source files with $(SRC_PATH) and remove $(SRC_PATH) from VPATH...I'm not even sure that would work though..
Perhaps just a friendly error message if we detect the $(SRC_PATH) directory needs a distclean? Once you know that's the magic fix it's not terribly inconvenient....alternatively we could automatically do the distclean in $SRC_PATH but that might be considered overstepping our bounds.
Consequently, it seems like this patch would be a noop...default-configs should never exist in an external build directory, so $(SRC_PATH)/default-configs and default-configs end up being equivalent when make eventually find it in $(SRC_PATH).
[Prev in Thread] | Current Thread | [Next in Thread] |