GNOME Bugzilla – Bug 617851
atk fails to build from git outside source tree
Last modified: 2010-05-06 08:29:01 UTC
By setting 'buildroot' in .jhbuildrc so that jhbuild builds stuffs from outside git source trees, atk fails to build, with the following messages: ---8<--- libtool: link: ( cd ".libs" && rm -f "libatk-1.0.la" && ln -s "../libatk-1.0.la" "libatk-1.0.la" ) make[3]: Leaving directory `/home/thep/build/gnome_git/atk/atk' make[2]: Leaving directory `/home/thep/build/gnome_git/atk/atk' make[1]: Leaving directory `/home/thep/build/gnome_git/atk' make[3]: *** No rule to make target `/home/thep/vcs/gnome_git/atk/atk/atk-enum-types.h', needed by `Atk-1.0.gir'. Stop. make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 ---8<--- It's this line that caused the problem: > Atk_1_0_gir_FILES = $(addprefix $(srcdir)/, $(introspection_sources)) $(introspection_sources) includes all $(libatkinclude_HEADERS) and $(libatk_1_0_la_SOURCES), including atk-enum-types.h and atk-enum-types.c, which are generated in $(builddir). So, adding prefix $(srcdir) here breaks it. Note that this kind of problem won't be caught by 'make distcheck', as the generated files are included in the distributed tarball. But this is not the case for VCS builds, such as with jhbuild.
Created attachment 160397 [details] [review] Split generated C source list This patch split the generated C source files from the list so they can be treated differently, just like how the generated headers are done.
Review of attachment 160397 [details] [review]: committed
Thanks for your patch.