On 01/08/2015 06:46 AM, Pavel Hrdina wrote:
On 01/08/2015 02:31 PM, Daniel P. Berrange wrote:
> On Thu, Jan 08, 2015 at 02:20:25PM +0100, Pavel Hrdina 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.
>
> The second sentance can be removed, since the movement is in the
> previous patch now.
>
>> Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
>> Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
>> ---
>> src/Makefile.am | 21 ++++++++++++++++-----
>> 1 file changed, 16 insertions(+), 5 deletions(-)
>
> ACK assuming you tested both VPATH & non-VPATH builds.
I'm now seeing a 'make distcheck' failure. Remember, during 'make
distcheck', automake arranges to change the source directory tree to
read-only, then does a VPATH build of that location. If any make rule
tries to write into the source directory, it is a sign that the tarball
has incorrect timestamps. And sure enough:
make[3]: Entering directory
'/home/eblake/libvirt-tmp/build/libvirt-1.2.12/_build/src'
LEX xenconfig/xen_xl_disk.h
flex: could not create
/home/eblake/libvirt-tmp/build/libvirt-1.2.12/src/xenconfig/xen_xl_disk.c
Makefile:10402: recipe for target 'xenconfig/xen_xl_disk.h' failed
make[3]: *** [xenconfig/xen_xl_disk.h] Error 1
although the failure details aren't mentioned, it is because this is the
phase of the build where srcdir is read-only.
We're making progress, but it looks like we still need more patches in
this area to make sure things are correct (possibly as simple as
distributing the witness timestamp file, so that make from a fresh
tarball sees no reason to re-run flex?).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org