summaryrefslogtreecommitdiff
path: root/tests/scripts/variables/automatic
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2002-07-10 12:59:07 +0000
committerPaul Smith <psmith@gnu.org>2002-07-10 12:59:07 +0000
commit4d72c4c11e3aff65e9bb36e5fcf75f088b140049 (patch)
tree92a4ac290dd9b9f2261e60457aca9b5a951bc15b /tests/scripts/variables/automatic
parent6c9a393f954805d49ab6c66957b46199ddd6e78e (diff)
downloadgunmake-4d72c4c11e3aff65e9bb36e5fcf75f088b140049.tar.gz
Implement SysV-style $$@ support. I looked at E.Parmelan's patch but
decided to implement this a different way, and didn't use it.
Diffstat (limited to 'tests/scripts/variables/automatic')
-rw-r--r--tests/scripts/variables/automatic29
1 files changed, 26 insertions, 3 deletions
diff --git a/tests/scripts/variables/automatic b/tests/scripts/variables/automatic
index b80d478..cb17efe 100644
--- a/tests/scripts/variables/automatic
+++ b/tests/scripts/variables/automatic
@@ -30,9 +30,8 @@ close(MAKEFILE);
# TEST #1 -- simple test
# -------
-&touch(qw(foo.x baz.z));
-
-sleep(1);
+# Touch these into the past
+&utouch(-10, qw(foo.x baz.z));
&run_make_with_options($makefile, "", &get_logfile);
$answer = "touch $dir/bar.y
@@ -47,4 +46,28 @@ touch $dir/foo.x\n";
unlink(qw(foo.x bar.y baz.z));
+# TEST #2 -- test the SysV emulation of $$@ etc.
+# -------
+
+$makefile2 = &get_tmpfile;
+
+open(MAKEFILE, "> $makefile2");
+print MAKEFILE "dir = $dir\n";
+print MAKEFILE <<'EOF';
+.SUFFIXES:
+.DEFAULT: ; @echo '$@'
+
+$(dir)/foo $(dir)/bar: $@.x $$@.x $$$@.x $$$$@.x $$(@D).x $$(@F).x
+
+$(dir)/x.z $(dir)/y.z: $(dir)/%.z : $@.% $$@.% $$$@.% $$$$@.% $$(@D).% $$(@F).%
+EOF
+
+&run_make_with_options($makefile2, "$dir/foo $dir/bar", &get_logfile);
+$answer = ".x\n$dir/foo.x\n\$.x\n\$@.x\n$dir.x\nfoo.x\n$dir/bar.x\nbar.x\n";
+&compare_output($answer, &get_logfile(1));
+
+&run_make_with_options($makefile2, "$dir/x.z $dir/y.z", &get_logfile);
+$answer = ".x\n$dir/x.z.x\n\$.x\n\$@.x\n$dir.x\nx.z.x\n.y\n$dir/y.z.y\n\$.y\n\$@.y\n$dir.y\ny.z.y\n";
+&compare_output($answer, &get_logfile(1));
+
1;