mirror of https://gitee.com/openkylin/libvirt.git
Make ESX & Hyper-V code generator safe with parallel builds
If from a clean GIT checkout 'make -j 8' is run, the ESX
and Hyper-V code will be generated multiple times over.
This is because there are multiple files being generated
from one invocation of the generator script. make does not
realize this and so invokes the generator once per file.
This doesn't matter with serialized builds, but with
parallel builds multiple instances of the generator get
run at once.
make[2]: Entering directory `/home/berrange/src/virt/libvirt/src'
GEN util/virkeymaps.h
GEN remote/remote_protocol.h
GEN remote/remote_client_bodies.h
GEN remote/qemu_protocol.h
GEN remote/qemu_client_bodies.h
GEN esx/esx_vi_methods.generated.c
GEN esx/esx_vi_methods.generated.h
GEN esx/esx_vi_methods.generated.macro
GEN esx/esx_vi_types.generated.c
GEN esx/esx_vi_types.generated.h
GEN esx/esx_vi_types.generated.typedef
GEN esx/esx_vi_types.generated.typedef
GEN esx/esx_vi_types.generated.typeenum
GEN esx/esx_vi_types.generated.typetostring
GEN esx/esx_vi_types.generated.typefromstring
GEN esx/esx_vi_types.generated.h
GEN esx/esx_vi_types.generated.c
GEN esx/esx_vi_methods.generated.h
GEN esx/esx_vi_methods.generated.c
GEN esx/esx_vi_methods.generated.macro
GEN esx/esx_vi.generated.h
GEN esx/esx_vi.generated.c
GEN esx/esx_vi_types.generated.typeenum
GEN esx/esx_vi_types.generated.typedef
GEN esx/esx_vi_types.generated.typeenum
GEN esx/esx_vi_types.generated.typetostring
GEN esx/esx_vi_types.generated.typefromstring
GEN esx/esx_vi_types.generated.h
GEN esx/esx_vi_types.generated.c
GEN esx/esx_vi_methods.generated.h
...snip...
GEN hyperv/hyperv_wmi.generated.h
GEN libvirt_qemu_probes.h
GEN locking/qemu-sanlock.conf
GEN hyperv/hyperv_wmi.generated.c
GEN rpc/virnetprotocol.h
GEN hyperv/hyperv_wmi_classes.generated.typedef
GEN hyperv/hyperv_wmi_classes.generated.h
GEN hyperv/hyperv_wmi_classes.generated.c
GEN rpc/virkeepaliveprotocol.h
GEN remote/remote_protocol.c
GEN remote/qemu_protocol.c
GEN rpc/virkeepaliveprotocol.c
GEN rpc/virnetprotocol.c
GEN libvirt.def
Prevent this using a timestamp file to control generation,
as was previously done for the python bindings in commit
a7868e0131
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
fa54d2a823
commit
1bfb47dfe6
|
@ -93,6 +93,7 @@
|
|||
/python/libvirt.py
|
||||
/python/libvirt_qemu.py
|
||||
/sc_*
|
||||
/src/.*.stamp
|
||||
/src/esx/*.generated.*
|
||||
/src/hyperv/*.generated.*
|
||||
/src/libvirt*.def
|
||||
|
|
|
@ -874,9 +874,17 @@ endif
|
|||
|
||||
BUILT_SOURCES += $(ESX_DRIVER_GENERATED)
|
||||
|
||||
$(ESX_DRIVER_GENERATED): $(srcdir)/esx/esx_vi_generator.input \
|
||||
ESX_GENERATED_STAMP = .esx_vi_generator.stamp
|
||||
|
||||
$(ESX_DRIVER_GENERATED): $(ESX_GENERATED_STAMP)
|
||||
|
||||
$(ESX_GENERATED_STAMP): $(srcdir)/esx/esx_vi_generator.input \
|
||||
$(srcdir)/esx/esx_vi_generator.py
|
||||
$(AM_V_GEN)srcdir=$(srcdir) $(PYTHON) $(srcdir)/esx/esx_vi_generator.py
|
||||
$(AM_V_GEN)srcdir=$(srcdir) $(PYTHON) $(srcdir)/esx/esx_vi_generator.py \
|
||||
&& touch $@
|
||||
|
||||
MAINTAINERCLEANFILES += $(ESX_DRIVER_GENERATED) $(ESX_GENERATED_STAMP)
|
||||
|
||||
|
||||
if WITH_ESX
|
||||
noinst_LTLIBRARIES += libvirt_driver_esx.la
|
||||
|
@ -892,9 +900,16 @@ endif
|
|||
|
||||
BUILT_SOURCES += $(HYPERV_DRIVER_GENERATED)
|
||||
|
||||
$(HYPERV_DRIVER_GENERATED): $(srcdir)/hyperv/hyperv_wmi_generator.input \
|
||||
HYPERV_GENERATED_STAMP = .hyperv_wmi_generator.stamp
|
||||
|
||||
$(HYPERV_DRIVER_GENERATED): $(HYPERV_GENERATED_STAMP)
|
||||
|
||||
$(HYPERV_GENERATED_STAMP): $(srcdir)/hyperv/hyperv_wmi_generator.input \
|
||||
$(srcdir)/hyperv/hyperv_wmi_generator.py
|
||||
$(AM_V_GEN)srcdir=$(srcdir) $(PYTHON) $(srcdir)/hyperv/hyperv_wmi_generator.py
|
||||
$(AM_V_GEN)srcdir=$(srcdir) $(PYTHON) $(srcdir)/hyperv/hyperv_wmi_generator.py \
|
||||
&& touch $@
|
||||
|
||||
MAINTAINERCLEANFILES += $(HYPERV_DRIVER_GENERATED) $(HYPERV_GENERATED_STAMP)
|
||||
|
||||
if WITH_HYPERV
|
||||
noinst_LTLIBRARIES += libvirt_driver_hyperv.la
|
||||
|
@ -1675,4 +1690,4 @@ endif
|
|||
|
||||
CLEANFILES += *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.i *.s
|
||||
DISTCLEANFILES += $(GENERATED_SYM_FILES)
|
||||
MAINTAINERCLEANFILES += $(REMOTE_DRIVER_GENERATED) $(VIR_NET_RPC_GENERATED) $(ESX_DRIVER_GENERATED)
|
||||
MAINTAINERCLEANFILES += $(REMOTE_DRIVER_GENERATED) $(VIR_NET_RPC_GENERATED)
|
||||
|
|
Loading…
Reference in New Issue