summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/read.c1
-rw-r--r--tests/scripts/features/include15
2 files changed, 16 insertions, 0 deletions
diff --git a/src/read.c b/src/read.c
index b46b48fc..9f2ed5cf 100644
--- a/src/read.c
+++ b/src/read.c
@@ -404,6 +404,7 @@ eval_makefile (const char *filename, unsigned short flags)
deps->file = enter_file (filename);
filename = deps->file->name;
deps->flags = flags;
+ deps->file->is_explicit = 1;
free (expanded);
diff --git a/tests/scripts/features/include b/tests/scripts/features/include
index 7f216434..76e365b9 100644
--- a/tests/scripts/features/include
+++ b/tests/scripts/features/include
@@ -472,4 +472,19 @@ all: ;
'', "C:__foobar\n#MAKE#: 'all' is up to date.");
}
+# sv 63484.
+# Test that included makefiles are not intermediate.
+# Here 'test.foo' is mentioned explicitly and cannot be considered
+# intermediate.
+&touch('test.foo', 'test.x', 'test');
+run_make_test(q!
+.PHONY: force
+include test.foo
+%.foo: force; touch -a $@
+%.x: %.foo; touch $@
+test: test.x; touch $@
+!, '', "touch -a test.foo\n#MAKE#: 'test' is up to date.\n");
+
+unlink('test.foo', 'test.x', 'test');
+
1;