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