[Spice-devel] [PATCH] Fix build from git with srcdir != builddir
mlureau at redhat.com
Thu Dec 22 06:44:59 PST 2011
----- Mensaje original -----
> The --basedir argument to valac seems to be meant to help handling
> this case but it doesn't seem to work with f16 valac so I appended
> $(srcdir) to the vala source files.
> Build is still broken with --enable-vala during .vapi generation
> due to what look like a vala bug.
I don't think that's a vala bug, nor an automake bug. It's the way the Makefile.am is written. I think basedir only influence generated files include... I'd need to look closer.
> diff --git a/gtk/controller/Makefile.am b/gtk/controller/Makefile.am
> index 2d5c5af..39c4ed0 100644
> --- a/gtk/controller/Makefile.am
> +++ b/gtk/controller/Makefile.am
> @@ -11,6 +11,7 @@ AM_VALAFLAGS = \
> --pkg gio-2.0 \
> --pkg spice-protocol --vapidir=$(top_srcdir)/data \
> --pkg custom --vapidir=$(srcdir) \
> + --directory=$(srcdir) \
> -C -g \
Outputting files in srcdir goes against the idea of out of tree build.
> @@ -26,8 +27,8 @@ noinst_PROGRAMS = test-controller
> BUILT_SOURCES = controller.vala.stamp
> libspice_controller_la_VALASOURCES = \
> - menu.vala \
> - controller.vala \
> + $(srcdir)/menu.vala \
> + $(srcdir)/controller.vala \
This is indeed needed, but then the $(libspice_controller_la_VALASOURCES:.vala=.c) substitution will also look for .c file in srcdir.
Since .c are dist'ed, they should be in the srcdir, so in the end I think that patch isn't really useful.
Instead, "./autogen.sh && make && make clean" should be run before doing out of tree builds from git.
More information about the Spice-devel