[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-trivial] [Qemu-devel] [PATCH] Makefile: simpler/faster "make h
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-trivial] [Qemu-devel] [PATCH] Makefile: simpler/faster "make help" |
Date: |
Thu, 9 Nov 2017 10:48:55 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 |
On 09/11/2017 07:40, Fam Zheng wrote:
> On Wed, 11/08 00:20, Philippe Mathieu-Daudé wrote:
>> Using obscure black magic introduced in eaa2ddbb767 :)
>
> That is a pretty boring one compared to the rest of our build system.
>
>>
>> In an out-of-tree directory, running "../configure && make help" will
>> generate
>> some required files (.mak), then clone some submodules, compile at least
>> the capstone submodule, generate QMP and Trace files, and finally display
>> the help.
>>
>> On an outdated computer (Sun Blade workstation), running "make help" took
>> more than 5h :) With this patch it took roughly 37min.
>>
>> Suggested-by: Daniel P. Berrange <address@hidden>
>> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
>> ---
>>
>> before:
>>
>> $ make help
>> GEN config-host.h
>> CC cs.o
>> CC utils.o
>> CC SStream.o
>> CC MCInstrDesc.o
>> CC MCRegisterInfo.o
>> CC arch/ARM/ARMDisassembler.o
>> CC arch/ARM/ARMInstPrinter.o
>> CC arch/ARM/ARMMapping.o
>> CC arch/ARM/ARMModule.o
>> CC arch/AArch64/AArch64BaseInfo.o
>> CC arch/AArch64/AArch64Disassembler.o
>> CC arch/AArch64/AArch64InstPrinter.o
>> CC arch/AArch64/AArch64Mapping.o
>> CC arch/AArch64/AArch64Module.o
>> CC arch/Mips/MipsDisassembler.o
>> CC arch/Mips/MipsInstPrinter.o
>> CC arch/Mips/MipsMapping.o
>> CC arch/Mips/MipsModule.o
>> CC arch/PowerPC/PPCDisassembler.o
>> CC arch/PowerPC/PPCInstPrinter.o
>> CC arch/PowerPC/PPCMapping.o
>> CC arch/PowerPC/PPCModule.o
>> CC arch/Sparc/SparcDisassembler.o
>> CC arch/Sparc/SparcInstPrinter.o
>> CC arch/Sparc/SparcMapping.o
>> CC arch/Sparc/SparcModule.o
>> CC arch/SystemZ/SystemZDisassembler.o
>> CC arch/SystemZ/SystemZInstPrinter.o
>> CC arch/SystemZ/SystemZMapping.o
>> CC arch/SystemZ/SystemZModule.o
>> CC arch/SystemZ/SystemZMCTargetDesc.o
>> CC arch/X86/X86DisassemblerDecoder.o
>> CC arch/X86/X86Disassembler.o
>> CC arch/X86/X86IntelInstPrinter.o
>> CC arch/X86/X86ATTInstPrinter.o
>> CC arch/X86/X86Mapping.o
>> CC arch/X86/X86Module.o
>> CC arch/XCore/XCoreDisassembler.o
>> CC arch/XCore/XCoreInstPrinter.o
>> CC arch/XCore/XCoreMapping.o
>> CC arch/XCore/XCoreModule.o
>> CC MCInst.o
>> AR libcapstone.a
>> ar: creating capstone/libcapstone.a
>> GEN trace/generated-tcg-tracers.h
>> GEN trace/generated-helpers-wrappers.h
>> GEN trace/generated-helpers.h
>> GEN trace/generated-helpers.c
>> GEN module_block.h
>> make[1]: 'capstone/libcapstone.a' is up to date.
>> Generic targets:
>> all - Build all
>> dir/file.o - Build specified target only
>> install - Install QEMU, documentation and tools
>> ctags/TAGS - Generate tags file for editors
>> cscope - Generate cscope index
>> [...]
>>
>> after:
>>
>> $ make help
>> Generic targets:
>> all - Build all
>> dir/file.o - Build specified target only
>> install - Install QEMU, documentation and tools
>> ctags/TAGS - Generate tags file for editors
>> cscope - Generate cscope index
>> [...]
>>
>> Makefile | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/Makefile b/Makefile
>> index 0496c5057a..7850ca5928 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -6,7 +6,7 @@ BUILD_DIR=$(CURDIR)
>> # Before including a proper config-host.mak, assume we are in the source
>> tree
>> SRC_PATH=.
>>
>> -UNCHECKED_GOALS := %clean TAGS cscope ctags docker docker-%
>> +UNCHECKED_GOALS := %clean TAGS cscope ctags docker docker-% help
>>
>> # All following code might depend on configuration variables
>> ifneq ($(wildcard config-host.mak),)
>> --
>> 2.15.0
>>
>>
>
> I think there are more targets that can be added to this list (vm-test for
> one)
> but this is already an improvement:
>
> Reviewed-by: Fam Zheng <address@hidden>
>
> So who is the maintainer to merge this patch?
I can do it.
Paolo