[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Makefile.target: set master BUILD_DIR
From: |
Peter Crosthwaite |
Subject: |
Re: [Qemu-devel] [PATCH] Makefile.target: set master BUILD_DIR |
Date: |
Tue, 26 May 2015 10:15:27 -0700 |
On Tue, May 26, 2015 at 6:29 AM, Paolo Bonzini <address@hidden> wrote:
>
>
> On 26/05/2015 07:38, Peter Crosthwaite wrote:
>> make can be invoked in the individual build dirs to build an individual
>> target or just a single file of a target. e.g.
>>
>> touch translate-all.c
>> make -C microblazeel-softmmu translate-all.o
>
> Out of curiosity, why not use "make subdir-microblazeel-softmmu" instead?
>
Does that in any way allow you to specify a single file?
This come up in my multi-arch work, where I am constantly touching
core headers while being a fully configured build. Every change
triggers major recompilation. So to make my quick edits I have started
a process where I use this fuller make specification to rebuild the
one under-development file+target combo that failed until the build
bugs go away. Then once is works I continue with unqualified build. I
also want to avoid retrigger of the common-obj build.
I guess I can pass BUILD_DIR in on the command line though.
Regards,
Peter
> Paolo
>
>> There is however a small bug when using the pixman submodule.
>> config-host.mak will ref BUILD_DIR for the pixman -I CFLAGS:
>>
>> grep BUILD_DIR config-host.mak
>> QEMU_CFLAGS=-I$(SRC_PATH)/pixman/pixman -I$(BUILD_DIR)/pixman/pixman ...
>>
>> This causes a build failure as -I/pixman/pixman (BUILD_DIR=="") will
>> not be found.
>>
>> BUILD_DIR is usually set by the top level Makefile. Just lazy-set it in
>> Makefile.target to the parent directory.
>>
>> Granted, this will not work if the pixman submodule is not prebuilt,
>> but it at least means you can do incremental partial builds once you
>> have done your initial full build (or attempt) from the top level.
>>
>> The next step would be refactor make infrastructure to rebuild pixman
>> on a submake like the one above.
>>
>> Cc: Gerd Hoffmann <address@hidden>
>> Signed-off-by: Peter Crosthwaite <address@hidden>
>> ---
>> Pixman is the only config-host.mak user of BUILD dir so maybe there is
>> a pixman specific solution out there too?
>> ---
>> Makefile.target | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/Makefile.target b/Makefile.target
>> index 3e861c8..ec5b92c 100644
>> --- a/Makefile.target
>> +++ b/Makefile.target
>> @@ -1,5 +1,7 @@
>> # -*- Mode: makefile -*-
>>
>> +BUILD_DIR?=$(CURDIR)/..
>> +
>> include ../config-host.mak
>> include config-target.mak
>> include config-devices.mak
>>
>