>From 51f61dfb1e861062aaa1d73fab71278c85fe0594 Mon Sep 17 00:00:00 2001 Message-Id: In-Reply-To: References: From: Stefano Lattarini Date: Mon, 27 Feb 2012 21:48:03 +0100 Subject: [PATCH 2/2] vala: fix 'valac' calls for projects with mixed Vala/C Fixes automake bug#10894. * automake.in (lang_vala_finish_target): Strip non-vala files from the dependencies of vala stamps, and from the invocation of valac compiler. Related refactorings. * tests/Makefile.am (XFAIL_TESTS): Remove 'vala-mix2.test'. --- automake.in | 27 +++++++++++++-------------- tests/Makefile.am | 1 - 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/automake.in b/automake.in index cdbb820..5ae151b 100644 --- a/automake.in +++ b/automake.in @@ -6014,20 +6014,19 @@ sub lang_vala_finish_target ($$) my ($self, $name) = @_; my $derived = canonicalize ($name); - my $varname = $derived . '_SOURCES'; - my $var = var ($varname); + my $var = var "${derived}_SOURCES"; + return unless $var; - if ($var) + my @vala_sources = grep { /\.vala$/ } ($var->value_as_list_recursive); + + foreach my $vala_file (@vala_sources) { - foreach my $file ($var->value_as_list_recursive) - { - $output_rules .= "\$(srcdir)/$file: \$(srcdir)/${derived}_vala.stamp\n" - . "address@hidden test -f \$@; then :; else rm -f \$(srcdir)/${derived}_vala.stamp; fi\n" - . "address@hidden test -f \$@; then :; else \\\n" - . "\t \$(MAKE) \$(AM_MAKEFLAGS) \$(srcdir)/${derived}_vala.stamp; \\\n" - . "\tfi\n" - if $file =~ s/(.*)\.vala$/$1.c/; - } + (my $c_file = $vala_file) =~ s/(.*)\.vala$/$1.c/; + $output_rules .= "\$(srcdir)/$c_file: \$(srcdir)/${derived}_vala.stamp\n" + . "address@hidden test -f \$@; then :; else rm -f \$(srcdir)/${derived}_vala.stamp; fi\n" + . "address@hidden test -f \$@; then :; else \\\n" + . "\t \$(MAKE) \$(AM_MAKEFLAGS) \$(srcdir)/${derived}_vala.stamp; \\\n" + . "\tfi\n" } # Add rebuild rules for generated header and vapi files @@ -6077,7 +6076,7 @@ sub lang_vala_finish_target ($$) my $silent = silent_flag (); $output_rules .= - "\$(srcdir)/${derived}_vala.stamp: \$(${derived}_SOURCES)\n". + "\$(srcdir)/${derived}_vala.stamp: @vala_sources\n". # Since the C files generated from the vala sources depend on the # ${derived}_vala.stamp file, we must ensure its timestamp is older than # those of the C files generated by the valac invocation below (this is @@ -6085,7 +6084,7 @@ sub lang_vala_finish_target ($$) # Thus we need to create the stamp file *before* invoking valac, and to # move it to its final location only after valac has been invoked. "\t${silent}rm -f \$\@ && echo stamp > address@hidden". - "\t${verbose}\$(am__cd) \$(srcdir) && ${compile} \$(${derived}_SOURCES)\n". + "\t${verbose}\$(am__cd) \$(srcdir) && $compile @vala_sources\n". "\t${silent}mv -f address@hidden address@hidden"; push_dist_common ("${derived}_vala.stamp"); diff --git a/tests/Makefile.am b/tests/Makefile.am index 8fd33f4..eab45dc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -30,7 +30,6 @@ pr8365-remake-timing.test \ lex-subobj-nodep.test \ remake-am-pr10111.test \ remake-m4-pr10111.test \ -vala-mix2.test \ txinfo5.test include $(srcdir)/parallel-tests.am -- 1.7.9