
On 01/05/2015 07:03 AM, Michal Privoznik wrote:
Well, the parallel build doesn't work as there are not dependencies set correctly. When running 'make -j' I see this error:
make[2]: Entering directory '/home/zippy/work/libvirt/libvirt.git/src' GEN util/virkeymaps.h GEN locking/lock_protocol.h make[2]: *** No rule to make target 'xenconfig/xen_xl_disk.h', needed by 'all'. Stop. make[2]: *** Waiting for unfinished jobs.... GEN lxc/lxc_controller_dispatch.h
The fix is to correctly set dependencies by letting make know that .c and .h are to be generated from .l. Moreover, the section is moved closer to the other section which uses it.
Have you also tested VPATH builds? With an in-tree build, I reproduced your failure with 'make -j3', then the failure went away with plain 'make'; but in a VPATH build, even plain 'make' is still failing without your patch: make[5]: Entering directory '/home/eblake/libvirt-tmp/build4/src' CC xenconfig/libvirt_xenconfig_la-xen_xl.lo ../../src/xenconfig/xen_xl.c:29:25: fatal error: xen_xl_disk.h: No such file or directory #include "xen_xl_disk.h" ^ compilation terminated. Makefile:9450: recipe for target 'xenconfig/libvirt_xenconfig_la-xen_xl.lo' failed which means I'm not even sure if we are being careful about the distinction between srcdir and builddir. I haven't looked closely at your proposed patch yet, but it's on my list now. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org