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.

Signed-off-by: Michal Privoznik <mpriv...@redhat.com>
Signed-off-by: Pavel Hrdina <phrd...@redhat.com>
---
 src/Makefile.am | 44 +++++++++++++++++++++++++++-----------------
 1 file changed, 27 insertions(+), 17 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index c6d736e..6e5f9c3 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1000,23 +1000,6 @@ CPU_SOURCES =                                            
        \
 VMX_SOURCES =                                                  \
                vmx/vmx.c vmx/vmx.h
 
-AM_LFLAGS = -Pxl_disk_ --header-file=../$*.h
-LEX_OUTPUT_ROOT = lex.xl_disk_
-BUILT_SOURCES += xenconfig/xen_xl_disk.c xenconfig/xen_xl_disk.h
-# Generated header file is not implicitly added to dist
-EXTRA_DIST += xenconfig/xen_xl_disk.h
-CLEANFILES += xenconfig/xen_xl_disk.h xenconfig/xen_xl_disk.c
-
-XENXLDISKPARSER_SOURCES = xenconfig/xen_xl_disk.l
-
-XENCONFIG_SOURCES =                                            \
-               xenconfig/xenxs_private.h                       \
-               xenconfig/xen_common.c xenconfig/xen_common.h   \
-               xenconfig/xen_sxpr.c xenconfig/xen_sxpr.h       \
-               xenconfig/xen_xm.c xenconfig/xen_xm.h           \
-               xenconfig/xen_xl.c xenconfig/xen_xl.h           \
-               xenconfig/xen_xl_disk.h
-
 pkgdata_DATA = cpu/cpu_map.xml
 
 EXTRA_DIST +=  $(pkgdata_DATA)
@@ -1070,6 +1053,31 @@ libvirt_vmx_la_SOURCES = $(VMX_SOURCES)
 endif WITH_VMX
 
 if WITH_XENCONFIG
+# Disable the default rule for lex files because we need to generete the
+# xen_xl_disk files into srcdir instread of builddir.
+.l.c:
+
+$(XENXLDISKPARSER_GENERATED): $(XENXLDISKPARSER_SOURCES)
+       $(AM_V_LEX) $(SHELL) $(YLWRAP) $< lex.xl_disk_.c \
+               $(abs_srcdir)/xenconfig/xen_xl_disk.c -- $(LEXCOMPILE)
+
+AM_LFLAGS = -Pxl_disk_ --header-file=$(abs_srcdir)/xenconfig/xen_xl_disk.h
+XENXLDISKPARSER_GENERATED = xenconfig/xen_xl_disk.c xenconfig/xen_xl_disk.h
+
+BUILT_SOURCES += $(XENXLDISKPARSER_GENERATED)
+EXTRA_DIST += $(XENXLDISKPARSER_GENERATED)
+MAINTAINERCLEANFILES += $(XENXLDISKPARSER_GENERATED)
+
+XENXLDISKPARSER_SOURCES = xenconfig/xen_xl_disk.l
+
+XENCONFIG_SOURCES =                                            \
+               xenconfig/xenxs_private.h                       \
+               xenconfig/xen_common.c xenconfig/xen_common.h   \
+               xenconfig/xen_sxpr.c xenconfig/xen_sxpr.h       \
+               xenconfig/xen_xm.c xenconfig/xen_xm.h           \
+               xenconfig/xen_xl.c xenconfig/xen_xl.h           \
+               xenconfig/xen_xl_disk_i.h
+
 # Flex generated XL disk parser needs to be compiled without WARN_FLAGS
 # Add the generated object to its own library to control CFLAGS
 noinst_LTLIBRARIES += libvirt_xenxldiskparser.la
@@ -1077,6 +1085,8 @@ libvirt_xenxldiskparser_la_CFLAGS = \
                -I$(top_srcdir)/src/conf $(AM_CFLAGS) -Wno-unused-parameter
 libvirt_xenxldiskparser_la_SOURCES = \
        $(XENXLDISKPARSER_SOURCES)
+libvirt_xenxldiskparser_la_DEPENDENCIES = \
+       $(XENXLDISKPARSER_GENERATED)
 
 noinst_LTLIBRARIES += libvirt_xenconfig.la
 libvirt_la_BUILT_LIBADD += libvirt_xenconfig.la
-- 
2.0.5

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to