From 1776fe3959a09838250a69c8a15fd0dd4fcb3504 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrg=20Billeter?= Date: Fri, 15 May 2009 15:51:03 +0200 Subject: [PATCH] Vala: Use $(srcdir) in rebuild rules. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit valac is always run in srcdir as the generated files are distributed. So srcdir needs to be taken into account in the rebuild rules to not wrongly trigger a rebuild in the wrong directory. * automake.in (lang_vala_finish_target): Rebuild files in $(srcdir). * tests/vala2.test: Test rebuild rules from VPATH build. Signed-off-by: Jürg Billeter Signed-off-by: Ralf Wildenhues --- ChangeLog | 8 ++++++++ automake.in | 12 ++++++------ tests/vala2.test | 4 ++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index b0f6f7afa..4e7262dae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2009-05-17 Jürg Billeter + Vala: Use $(srcdir) in rebuild rules. + valac is always run in srcdir as the generated files are distributed. + So srcdir needs to be taken into account in the rebuild rules to not + wrongly trigger a rebuild in the wrong directory. + * automake.in (lang_vala_finish_target): Rebuild files in + $(srcdir). + * tests/vala2.test: Test rebuild rules from VPATH build. + Vala: Add and test rebuild rules for generated header and vapi files. valac will generate additional files when using, for example, -H in VALAFLAGS. We need to recognize these options and add appropriate diff --git a/automake.in b/automake.in index a2b735f02..13dd79bab 100755 --- a/automake.in +++ b/automake.in @@ -5942,10 +5942,10 @@ sub lang_vala_finish_target ($$) { foreach my $file ($var->value_as_list_recursive) { - $output_rules .= "$file: ${derived}_vala.stamp\n". + $output_rules .= "\$(srcdir)/$file: \$(srcdir)/${derived}_vala.stamp\n". "\t\@if test -f \$@; then :; else \\\n". - "\t rm -f ${derived}_vala.stamp; \\\n". - "\t \$(MAKE) \$(AM_MAKEFLAGS) ${derived}_vala.stamp; \\\n". + "\t rm -f \$(srcdir)/${derived}_vala.stamp; \\\n". + "\t cd \$(srcdir) && \$(MAKE) \$(AM_MAKEFLAGS) ${derived}_vala.stamp; \\\n". "\tfi\n" if $file =~ s/(.*)\.vala$/$1.c/; } @@ -5962,10 +5962,10 @@ sub lang_vala_finish_target ($$) '--vapi', '--internal-vapi', '--gir'))) { my $headerfile = $flag; - $output_rules .= "$headerfile: ${derived}_vala.stamp\n". + $output_rules .= "\$(srcdir)/$headerfile: \$(srcdir)/${derived}_vala.stamp\n". "\t\@if test -f \$@; then :; else \\\n". - "\t rm -f ${derived}_vala.stamp; \\\n". - "\t \$(MAKE) \$(AM_MAKEFLAGS) ${derived}_vala.stamp; \\\n". + "\t rm -f \$(srcdir)/${derived}_vala.stamp; \\\n". + "\t cd \$(srcdir) && \$(MAKE) \$(AM_MAKEFLAGS) ${derived}_vala.stamp; \\\n". "\tfi\n"; # valac is not used when building from dist tarballs diff --git a/tests/vala2.test b/tests/vala2.test index bfa38cd3b..d9dcfc5c2 100755 --- a/tests/vala2.test +++ b/tests/vala2.test @@ -81,3 +81,7 @@ cd build $MAKE $MAKE distcheck +# test rebuild rules from builddir +touch ../src/zardoz.vala +$MAKE + -- 2.11.4.GIT