[libvirt] [PATCH] Makefile: Fix parallel build after Xen-xl parser introduction
Jim Fehlig
jfehlig at suse.com
Mon Jan 5 21:48:04 UTC 2015
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.
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>
> I'm not fully satisfied with this patch yet. I mean, for some
> reason it creates 'src/.h' file, but hey - it makes parallel
> build work again. Any brighter idea appreciated.
>
Interesting. I don't see the file using your patch. What version of
automake? I'm using the rather old 1.13.
> src/Makefile.am | 36 +++++++++++++++++++-----------------
> 1 file changed, 19 insertions(+), 17 deletions(-)
>
> diff --git a/src/Makefile.am b/src/Makefile.am
> index c6d736e..7619cf0 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)
> @@ -1078,6 +1061,25 @@ libvirt_xenxldiskparser_la_CFLAGS = \
> libvirt_xenxldiskparser_la_SOURCES = \
> $(XENXLDISKPARSER_SOURCES)
>
> +AM_LFLAGS = -Pxl_disk_ --header-file=../$*.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
> +
> +$(XENXLDISKPARSER_GENERATED): $(XENXLDISKPARSER_SOURCES)
> + $(SHELL) $(YLWRAP) $< lex.xl_disk_.c $@ -- $(LEXCOMPILE)
>
Answering Daniel's question about the expansion of AM_LFLAGS, on my
system the whole ylwrap invocation expands to
/bin/sh ../build-aux/ylwrap xenconfig/xen_xl_disk.l lex.xl_disk_.c
xenconfig/xen_xl_disk.c -- flex -Pxl_disk_
--header-file=../xenconfig/xen_xl_disk.h
Regards,
Jim
> +
> +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
> +
> noinst_LTLIBRARIES += libvirt_xenconfig.la
> libvirt_la_BUILT_LIBADD += libvirt_xenconfig.la
> libvirt_xenconfig_la_CFLAGS = \
>
More information about the libvir-list
mailing list