>From 72f7e5de24468adfeded4b14eae97a839ae3b531 Mon Sep 17 00:00:00 2001 Message-Id: In-Reply-To: References: From: Ryan Lortie Date: Sat, 7 Jan 2012 01:08:11 -0500 Subject: [PATCH 2/3] vala: fix VPATH builds This change fixes automake bug#9859. * automake.in (lang_vala_finish_target): Create the stamp file '${derived}_vala.stamp' in $(srcdir), not in $(builddir). Also, don't try to chdir to the $(srcdir) to trigger the rebuild rules, since that is just wrong in a VPATH setup. * tests/vala-vpath.test, tests/vala2.test: Extend to catch more possible VPATH issues. * tests/Makefile.am (XFAIL_TESTS): Remove 'vala-vpath.test'. * NEWS, THANKS: Update. Co-authored-by: Stefano Lattarini Copyright-paperwork-exempt: yes --- NEWS | 2 ++ THANKS | 1 + automake.in | 8 ++++---- tests/Makefile.am | 1 - tests/vala-vpath.test | 19 ++++++++++++++++++- tests/vala2.test | 11 +++++++++-- 6 files changed, 34 insertions(+), 8 deletions(-) diff --git a/NEWS b/NEWS index 2b09bb5..9f2c6a1 100644 --- a/NEWS +++ b/NEWS @@ -129,6 +129,8 @@ Bugs fixed in 1.11.0a: * Long-standing bugs: + - Vala support now works better in VPATH setups. + - The "deleted header file problem" for *.am files is avoided by stub rules. This allows `make' to trigger a rerun of `automake' also if some previously needed `.am' file has been removed. diff --git a/THANKS b/THANKS index e9c6db8..fbb7eb4 100644 --- a/THANKS +++ b/THANKS @@ -315,6 +315,7 @@ Roman Fietze address@hidden Ronald Landheer address@hidden Roumen Petrov address@hidden Rusty Ballinger address@hidden +Ryan Lortie address@hidden Ryan T. Sammartino address@hidden Sam Hocevar address@hidden Sam Sirlin address@hidden diff --git a/automake.in b/automake.in index a689b63..e1d6319 100644 --- a/automake.in +++ b/automake.in @@ -6023,7 +6023,7 @@ sub lang_vala_finish_target ($$) $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 \$(am__cd) \$(srcdir) && \$(MAKE) \$(AM_MAKEFLAGS) ${derived}_vala.stamp; \\\n" + . "\t \$(MAKE) \$(AM_MAKEFLAGS) \$(srcdir)/${derived}_vala.stamp; \\\n" . "\tfi\n" if $file =~ s/(.*)\.vala$/$1.c/; } @@ -6043,7 +6043,7 @@ sub lang_vala_finish_target ($$) $output_rules .= "\$(srcdir)/$headerfile: \$(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 \$(am__cd) \$(srcdir) && \$(MAKE) \$(AM_MAKEFLAGS) ${derived}_vala.stamp; \\\n" + . "\t \$(MAKE) \$(AM_MAKEFLAGS) \$(srcdir)/${derived}_vala.stamp; \\\n" . "\tfi\n"; # valac is not used when building from dist tarballs @@ -6076,8 +6076,8 @@ sub lang_vala_finish_target ($$) my $silent = silent_flag (); $output_rules .= - "${derived}_vala.stamp: \$(${derived}_SOURCES)\n". - "\t${verbose}${compile} \$(${derived}_SOURCES)\n". + "\$(srcdir)/${derived}_vala.stamp: \$(${derived}_SOURCES)\n". + "\t${verbose}cd \$(srcdir) && ${compile} \$(${derived}_SOURCES)\n". "\t${silent}touch address@hidden"; push_dist_common ("${derived}_vala.stamp"); diff --git a/tests/Makefile.am b/tests/Makefile.am index 9db0a03..8817b64 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-vpath.test \ txinfo5.test include $(srcdir)/parallel-tests.am diff --git a/tests/vala-vpath.test b/tests/vala-vpath.test index 99e30db..9d60dbb 100755 --- a/tests/vala-vpath.test +++ b/tests/vala-vpath.test @@ -38,7 +38,7 @@ END cat > hello.vala <<'END' void main () { - stdout.printf ("foo\n"); + stdout.printf ("foofoofoo\n"); } END @@ -50,6 +50,23 @@ mkdir build cd build ../configure || Exit 77 $MAKE +grep foofoofoo ../hello.c $MAKE distcheck +# Rebuild rules work also in VPATH builds. +cat > ../hello.vala <<'END' +int main () +{ + stdout.printf ("barbarbar\n"); + return 0; +} +END + +$MAKE +grep barbarbar ../hello.c + +# Rebuild rules are not uselessly triggered. +$MAKE -q +$MAKE -n | grep '\.stamp' && Exit 1 + : diff --git a/tests/vala2.test b/tests/vala2.test index e559540..a8a3d90 100755 --- a/tests/vala2.test +++ b/tests/vala2.test @@ -81,7 +81,14 @@ cd build $MAKE $MAKE distcheck -# test rebuild rules from builddir -touch ../src/zardoz.vala +# Test rebuild rules from builddir. +rm -f ../src/zardoz.c $MAKE +grep 'Zardoz!' ../src/zardoz.c +sed 's/Zardoz!/FooBar!/' ../src/zardoz.c > t +mv -f t ../src/zardoz.c +$MAKE +grep 'FooBar!' ../src/zardoz.c +grep 'Zardoz!' ../src/zardoz.c && Exit 1 +: -- 1.7.7.3