[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] 'make help' generate unrelated files
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] 'make help' generate unrelated files |
Date: |
Tue, 31 Oct 2017 11:33:08 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
On 07/29/2017 06:30 AM, Peter Maydell wrote:
> This happens because we have a rule that says
> "Makefile: $(GENERATED_FILES)"
> which is how we ensure that the autogenerated header
> files are always built before any .c file is compiled.
> The unfortunate side effect is that we rebuild the
> generated files before processing *any* makefile
> target, even those like 'clean' and 'help' that
> don't actually require them.
>
> I did once have a go at fixing this some years back:
> http://patchwork.ozlabs.org/patch/365288/
> but as you'll note from the last comment by me
> in that mail thread it had a fatal flaw for
> the "build from clean" case...
It's now getting worse, compiling dtc + capstone :)
$ ./configure > /dev/null && time make help
GEN aarch64-softmmu/config-devices.mak.tmp
GEN aarch64-softmmu/config-devices.mak
GEN alpha-softmmu/config-devices.mak.tmp
GEN alpha-softmmu/config-devices.mak
GEN arm-softmmu/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak
GEN cris-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak
GEN i386-softmmu/config-devices.mak.tmp
GEN i386-softmmu/config-devices.mak
GEN lm32-softmmu/config-devices.mak.tmp
GEN lm32-softmmu/config-devices.mak
GEN m68k-softmmu/config-devices.mak.tmp
GEN m68k-softmmu/config-devices.mak
GEN microblaze-softmmu/config-devices.mak.tmp
GEN microblaze-softmmu/config-devices.mak
GEN microblazeel-softmmu/config-devices.mak.tmp
GEN microblazeel-softmmu/config-devices.mak
GEN mips-softmmu/config-devices.mak.tmp
GEN mips-softmmu/config-devices.mak
GEN mips64-softmmu/config-devices.mak.tmp
GEN mips64-softmmu/config-devices.mak
GEN mips64el-softmmu/config-devices.mak.tmp
GEN mips64el-softmmu/config-devices.mak
GEN mipsel-softmmu/config-devices.mak.tmp
GEN mipsel-softmmu/config-devices.mak
GEN moxie-softmmu/config-devices.mak.tmp
GEN moxie-softmmu/config-devices.mak
GEN nios2-softmmu/config-devices.mak.tmp
GEN nios2-softmmu/config-devices.mak
GEN or1k-softmmu/config-devices.mak.tmp
GEN or1k-softmmu/config-devices.mak
GEN ppc-softmmu/config-devices.mak.tmp
GEN ppc-softmmu/config-devices.mak
GEN ppc64-softmmu/config-devices.mak.tmp
GEN ppc64-softmmu/config-devices.mak
GEN ppcemb-softmmu/config-devices.mak.tmp
GEN ppcemb-softmmu/config-devices.mak
GEN s390x-softmmu/config-devices.mak.tmp
GEN s390x-softmmu/config-devices.mak
GEN sh4-softmmu/config-devices.mak.tmp
GEN sh4-softmmu/config-devices.mak
GEN sh4eb-softmmu/config-devices.mak.tmp
GEN sh4eb-softmmu/config-devices.mak
GEN sparc-softmmu/config-devices.mak.tmp
GEN sparc-softmmu/config-devices.mak
GEN sparc64-softmmu/config-devices.mak.tmp
GEN sparc64-softmmu/config-devices.mak
GEN tricore-softmmu/config-devices.mak.tmp
GEN tricore-softmmu/config-devices.mak
GEN unicore32-softmmu/config-devices.mak.tmp
GEN unicore32-softmmu/config-devices.mak
GEN x86_64-softmmu/config-devices.mak.tmp
GEN x86_64-softmmu/config-devices.mak
GEN xtensa-softmmu/config-devices.mak.tmp
GEN xtensa-softmmu/config-devices.mak
GEN xtensaeb-softmmu/config-devices.mak.tmp
GEN xtensaeb-softmmu/config-devices.mak
GEN aarch64-linux-user/config-devices.mak.tmp
GEN aarch64-linux-user/config-devices.mak
GEN alpha-linux-user/config-devices.mak.tmp
GEN alpha-linux-user/config-devices.mak
GEN arm-linux-user/config-devices.mak.tmp
GEN arm-linux-user/config-devices.mak
GEN armeb-linux-user/config-devices.mak.tmp
GEN armeb-linux-user/config-devices.mak
GEN cris-linux-user/config-devices.mak.tmp
GEN cris-linux-user/config-devices.mak
GEN hppa-linux-user/config-devices.mak.tmp
GEN hppa-linux-user/config-devices.mak
GEN i386-linux-user/config-devices.mak.tmp
GEN i386-linux-user/config-devices.mak
GEN m68k-linux-user/config-devices.mak.tmp
GEN m68k-linux-user/config-devices.mak
GEN microblaze-linux-user/config-devices.mak.tmp
GEN microblaze-linux-user/config-devices.mak
GEN microblazeel-linux-user/config-devices.mak.tmp
GEN microblazeel-linux-user/config-devices.mak
GEN mips-linux-user/config-devices.mak.tmp
GEN mips-linux-user/config-devices.mak
GEN mips64-linux-user/config-devices.mak.tmp
GEN mips64-linux-user/config-devices.mak
GEN mips64el-linux-user/config-devices.mak.tmp
GEN mips64el-linux-user/config-devices.mak
GEN mipsel-linux-user/config-devices.mak.tmp
GEN mipsel-linux-user/config-devices.mak
GEN mipsn32-linux-user/config-devices.mak.tmp
GEN mipsn32-linux-user/config-devices.mak
GEN mipsn32el-linux-user/config-devices.mak.tmp
GEN mipsn32el-linux-user/config-devices.mak
GEN nios2-linux-user/config-devices.mak.tmp
GEN nios2-linux-user/config-devices.mak
GEN or1k-linux-user/config-devices.mak.tmp
GEN or1k-linux-user/config-devices.mak
GEN ppc-linux-user/config-devices.mak.tmp
GEN ppc-linux-user/config-devices.mak
GEN ppc64-linux-user/config-devices.mak.tmp
GEN ppc64-linux-user/config-devices.mak
GEN ppc64abi32-linux-user/config-devices.mak.tmp
GEN ppc64abi32-linux-user/config-devices.mak
GEN ppc64le-linux-user/config-devices.mak.tmp
GEN ppc64le-linux-user/config-devices.mak
GEN s390x-linux-user/config-devices.mak.tmp
GEN s390x-linux-user/config-devices.mak
GEN sh4-linux-user/config-devices.mak.tmp
GEN sh4-linux-user/config-devices.mak
GEN sh4eb-linux-user/config-devices.mak.tmp
GEN sh4eb-linux-user/config-devices.mak
GEN sparc-linux-user/config-devices.mak.tmp
GEN sparc-linux-user/config-devices.mak
GEN sparc32plus-linux-user/config-devices.mak.tmp
GEN sparc32plus-linux-user/config-devices.mak
GEN sparc64-linux-user/config-devices.mak.tmp
GEN sparc64-linux-user/config-devices.mak
GEN tilegx-linux-user/config-devices.mak.tmp
GEN tilegx-linux-user/config-devices.mak
GEN x86_64-linux-user/config-devices.mak.tmp
GEN x86_64-linux-user/config-devices.mak
GEN config-all-devices.mak
GEN config-host.h
mkdir -p dtc/libfdt
mkdir -p dtc/tests
DEP dtc/tests/dumptrees.c
DEP dtc/tests/trees.S
DEP dtc/tests/testutils.c
DEP dtc/tests/value-labels.c
DEP dtc/tests/asm_tree_dump.c
DEP dtc/tests/truncated_property.c
DEP dtc/tests/check_path.c
DEP dtc/tests/overlay_bad_fixup.c
DEP dtc/tests/overlay.c
DEP dtc/tests/subnode_iterate.c
DEP dtc/tests/property_iterate.c
DEP dtc/tests/integer-expressions.c
DEP dtc/tests/utilfdt_test.c
DEP dtc/tests/path_offset_aliases.c
DEP dtc/tests/add_subnode_with_nops.c
DEP dtc/tests/dtbs_equal_unordered.c
DEP dtc/tests/dtb_reverse.c
DEP dtc/tests/dtbs_equal_ordered.c
DEP dtc/tests/extra-terminating-null.c
DEP dtc/tests/incbin.c
DEP dtc/tests/boot-cpuid.c
DEP dtc/tests/phandle_format.c
DEP dtc/tests/path-references.c
DEP dtc/tests/references.c
DEP dtc/tests/string_escapes.c
DEP dtc/tests/propname_escapes.c
DEP dtc/tests/appendprop2.c
DEP dtc/tests/appendprop1.c
DEP dtc/tests/del_node.c
DEP dtc/tests/del_property.c
DEP dtc/tests/setprop.c
DEP dtc/tests/set_name.c
DEP dtc/tests/rw_tree1.c
DEP dtc/tests/open_pack.c
DEP dtc/tests/nopulate.c
DEP dtc/tests/mangle-layout.c
DEP dtc/tests/move_and_save.c
DEP dtc/tests/sw_tree1.c
DEP dtc/tests/nop_node.c
DEP dtc/tests/nop_property.c
DEP dtc/tests/setprop_inplace.c
DEP dtc/tests/stringlist.c
DEP dtc/tests/addr_size_cells.c
DEP dtc/tests/notfound.c
DEP dtc/tests/sized_cells.c
DEP dtc/tests/char_literal.c
DEP dtc/tests/get_alias.c
DEP dtc/tests/node_offset_by_compatible.c
DEP dtc/tests/node_check_compatible.c
DEP dtc/tests/node_offset_by_phandle.c
DEP dtc/tests/node_offset_by_prop_value.c
DEP dtc/tests/parent_offset.c
DEP dtc/tests/supernode_atdepth_offset.c
DEP dtc/tests/get_path.c
DEP dtc/tests/get_phandle.c
DEP dtc/tests/getprop.c
DEP dtc/tests/get_name.c
DEP dtc/tests/path_offset.c
DEP dtc/tests/subnode_offset.c
DEP dtc/tests/find_property.c
DEP dtc/tests/root_node.c
DEP dtc/tests/get_mem_rsv.c
DEP dtc/libfdt/fdt_overlay.c
DEP dtc/libfdt/fdt_addresses.c
DEP dtc/libfdt/fdt_empty_tree.c
DEP dtc/libfdt/fdt_strerror.c
DEP dtc/libfdt/fdt_rw.c
DEP dtc/libfdt/fdt_sw.c
DEP dtc/libfdt/fdt_wip.c
DEP dtc/libfdt/fdt_ro.c
DEP dtc/libfdt/fdt.c
DEP dtc/util.c
DEP dtc/fdtput.c
DEP dtc/fdtget.c
DEP dtc/fdtdump.c
LEX convert-dtsv0-lexer.lex.c
make[1]: flex: Command not found
DEP dtc/srcpos.c
BISON dtc-parser.tab.c
make[1]: bison: Command not found
LEX dtc-lexer.lex.c
make[1]: flex: Command not found
DEP dtc/treesource.c
DEP dtc/livetree.c
DEP dtc/fstree.c
DEP dtc/flattree.c
DEP dtc/dtc.c
DEP dtc/data.c
DEP dtc/checks.c
CHK version_gen.h
UPD version_gen.h
DEP dtc/util.c
LEX convert-dtsv0-lexer.lex.c
make[1]: flex: Command not found
BISON dtc-parser.tab.c
make[1]: bison: Command not found
LEX dtc-lexer.lex.c
make[1]: flex: Command not found
LEX convert-dtsv0-lexer.lex.c
make[1]: flex: Command not found
BISON dtc-parser.tab.c
make[1]: bison: Command not found
LEX dtc-lexer.lex.c
make[1]: flex: Command not found
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
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 qemu-options.def
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qapi-event.h
GEN qmp-marshal.c
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
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
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN scsi/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
mkdir -p dtc/libfdt
mkdir -p dtc/tests
LEX convert-dtsv0-lexer.lex.c
make[1]: flex: Command not found
BISON dtc-parser.tab.c
make[1]: bison: Command not found
LEX dtc-lexer.lex.c
make[1]: flex: Command not found
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
Architecture specific targets:
subdir-aarch64-softmmu - Build for aarch64-softmmu
subdir-alpha-softmmu - Build for alpha-softmmu
subdir-arm-softmmu - Build for arm-softmmu
subdir-cris-softmmu - Build for cris-softmmu
subdir-i386-softmmu - Build for i386-softmmu
subdir-lm32-softmmu - Build for lm32-softmmu
subdir-m68k-softmmu - Build for m68k-softmmu
subdir-microblaze-softmmu - Build for microblaze-softmmu
subdir-microblazeel-softmmu - Build for microblazeel-softmmu
subdir-mips-softmmu - Build for mips-softmmu
subdir-mips64-softmmu - Build for mips64-softmmu
subdir-mips64el-softmmu - Build for mips64el-softmmu
subdir-mipsel-softmmu - Build for mipsel-softmmu
subdir-moxie-softmmu - Build for moxie-softmmu
subdir-nios2-softmmu - Build for nios2-softmmu
subdir-or1k-softmmu - Build for or1k-softmmu
subdir-ppc-softmmu - Build for ppc-softmmu
subdir-ppc64-softmmu - Build for ppc64-softmmu
subdir-ppcemb-softmmu - Build for ppcemb-softmmu
subdir-s390x-softmmu - Build for s390x-softmmu
subdir-sh4-softmmu - Build for sh4-softmmu
subdir-sh4eb-softmmu - Build for sh4eb-softmmu
subdir-sparc-softmmu - Build for sparc-softmmu
subdir-sparc64-softmmu - Build for sparc64-softmmu
subdir-tricore-softmmu - Build for tricore-softmmu
subdir-unicore32-softmmu - Build for unicore32-softmmu
subdir-x86_64-softmmu - Build for x86_64-softmmu
subdir-xtensa-softmmu - Build for xtensa-softmmu
subdir-xtensaeb-softmmu - Build for xtensaeb-softmmu
subdir-aarch64-linux-user - Build for aarch64-linux-user
subdir-alpha-linux-user - Build for alpha-linux-user
subdir-arm-linux-user - Build for arm-linux-user
subdir-armeb-linux-user - Build for armeb-linux-user
subdir-cris-linux-user - Build for cris-linux-user
subdir-hppa-linux-user - Build for hppa-linux-user
subdir-i386-linux-user - Build for i386-linux-user
subdir-m68k-linux-user - Build for m68k-linux-user
subdir-microblaze-linux-user - Build for microblaze-linux-user
subdir-microblazeel-linux-user - Build for microblazeel-linux-user
subdir-mips-linux-user - Build for mips-linux-user
subdir-mips64-linux-user - Build for mips64-linux-user
subdir-mips64el-linux-user - Build for mips64el-linux-user
subdir-mipsel-linux-user - Build for mipsel-linux-user
subdir-mipsn32-linux-user - Build for mipsn32-linux-user
subdir-mipsn32el-linux-user - Build for mipsn32el-linux-user
subdir-nios2-linux-user - Build for nios2-linux-user
subdir-or1k-linux-user - Build for or1k-linux-user
subdir-ppc-linux-user - Build for ppc-linux-user
subdir-ppc64-linux-user - Build for ppc64-linux-user
subdir-ppc64abi32-linux-user - Build for ppc64abi32-linux-user
subdir-ppc64le-linux-user - Build for ppc64le-linux-user
subdir-s390x-linux-user - Build for s390x-linux-user
subdir-sh4-linux-user - Build for sh4-linux-user
subdir-sh4eb-linux-user - Build for sh4eb-linux-user
subdir-sparc-linux-user - Build for sparc-linux-user
subdir-sparc32plus-linux-user - Build for sparc32plus-linux-user
subdir-sparc64-linux-user - Build for sparc64-linux-user
subdir-tilegx-linux-user - Build for tilegx-linux-user
subdir-x86_64-linux-user - Build for x86_64-linux-user
Cleaning targets:
clean - Remove most generated files but keep the config
distclean - Remove all generated files
dist - Build a distributable tarball
Test targets:
check - Run all tests (check-help for details)
docker - Help about targets running tests inside Docker
containers
vm-test - Help about targets running tests inside VM
Documentation targets:
html info pdf txt
- Build documentation in specified format
make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
real 0m33.636s
user 0m30.637s
sys 0m3.285s
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] 'make help' generate unrelated files,
Philippe Mathieu-Daudé <=