summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-01-22 10:44:42 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-01-22 10:45:39 +0100
commitb08103fedac9fbdf0a24f9192a901ea4b01e45af (patch)
tree01ccdc51751134f1e32433fbb3bbbe536e8e5b35
parentd266b5f7fb2fbb7fddb5b8515d57c32b45a50c67 (diff)
downloadautomake-b08103fedac9fbdf0a24f9192a901ea4b01e45af.tar.gz
vala: fix name of temporary file used in vala rules
Unquoted `@' characters in a "..." string in the automake script were causing slightly wrong rules to be emitted in the generated Makefile.in; i.e., rules like: rm -f $@ && echo stamp > $10t instead of the expected: rm -f $@ && echo stamp > $@-t * automake.in (lang_vala_finish_target): Fix that. * tests/vala.test: Enhance.
-rw-r--r--automake.in4
-rwxr-xr-xtests/vala.test5
2 files changed, 7 insertions, 2 deletions
diff --git a/automake.in b/automake.in
index 3c70b38e2..abca23de1 100644
--- a/automake.in
+++ b/automake.in
@@ -6083,9 +6083,9 @@ sub lang_vala_finish_target ($$)
# especially important on systems with sub-second timestamp resolution).
# 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 > \$@-t\n".
+ "\t${silent}rm -f \$\@ && echo stamp > \$\@-t\n".
"\t${verbose}\$(am__cd) \$(srcdir) && ${compile} \$(${derived}_SOURCES)\n".
- "\t${silent}mv -f \$@-t \$@\n";
+ "\t${silent}mv -f \$\@-t \$\@\n";
push_dist_common ("${derived}_vala.stamp");
diff --git a/tests/vala.test b/tests/vala.test
index 442661d5d..70122c326 100755
--- a/tests/vala.test
+++ b/tests/vala.test
@@ -84,4 +84,9 @@ $FGREP 'baz.c' sub/Makefile.in
$FGREP 'foo_vala.stamp:' sub/Makefile.in
test `$FGREP -c '.stamp:' sub/Makefile.in` -eq 1
+# Check against regression for weird bug due to unescaped '@'
+# characters used in a "..." perl string when writing the vala
+# rules from automake.in.
+grep '\$[0-9][0-9]*t' Makefile.in sub/Makefile.in && Exit 1
+
: