aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaëtan Gilbert2020-06-27 22:02:49 +0200
committerGaëtan Gilbert2020-06-27 22:02:49 +0200
commitc9ca432c1457bec080f98180bc5ef12ebdf57863 (patch)
tree1d1ed518e6b200d0b02b6cd44c39f482e6de6a65
parent427fb9282dd76a6b48c37fc2cffcbc0af10ad37d (diff)
parent9690b138b13c0bb591c8c4aa6bb18cff5c79f655 (diff)
Merge PR #12583: [test-suite] Fix dependencies of modules/ files
Reviewed-by: SkySkimmer
-rw-r--r--doc/changelog/11-infrastructure-and-dependencies/12583-fix-remake.rst5
-rw-r--r--test-suite/Makefile9
2 files changed, 13 insertions, 1 deletions
diff --git a/doc/changelog/11-infrastructure-and-dependencies/12583-fix-remake.rst b/doc/changelog/11-infrastructure-and-dependencies/12583-fix-remake.rst
new file mode 100644
index 0000000000..d9c8b634d6
--- /dev/null
+++ b/doc/changelog/11-infrastructure-and-dependencies/12583-fix-remake.rst
@@ -0,0 +1,5 @@
+- **Fixed:**
+ Running ``make`` in ``test-suite/`` twice (or more) in a row will no longer
+ rebuild the ``modules/`` tests on subsequent runs, if they have not been
+ modified in the meantime (`#12583 <https://github.com/coq/coq/pull/12583>`_,
+ fixes `#12582 <https://github.com/coq/coq/issues/12582>`_, by Jason Gross).
diff --git a/test-suite/Makefile b/test-suite/Makefile
index d4ad438d61..59cc3e5a38 100644
--- a/test-suite/Makefile
+++ b/test-suite/Makefile
@@ -629,7 +629,14 @@ $(addsuffix .log,$(wildcard ideal-features/*.v)): %.v.log: %.v $(PREREQUISITELOG
} > "$@"
# Additional dependencies for module tests
-$(addsuffix .log,$(wildcard modules/*.v)): %.v.log: modules/Nat.vo modules/plik.vo
+COMMON_MODULE_DEPENDENCIES := modules/plik.v modules/Nat.v
+# We exclude Nat.v.log and plik.v.log because these log files do not
+# depend on having the corresponding .vo files built first, and we end
+# up with pseudo-cyclic build rules if we don't exclude them (See
+# COQBUG(https://github.com/coq/coq/issues/12582)). Additionally, we
+# impose order-only dependencies to ensure that we won't rebuild the
+# .vo files in the .log target after we've already built them.
+$(addsuffix .log,$(filter-out $(COMMON_MODULE_DEPENDENCIES),$(wildcard modules/*.v))): %.v.log: $(COMMON_MODULE_DEPENDENCIES:.v=.vo) | $(COMMON_MODULE_DEPENDENCIES:.v=.v.log)
modules/%.vo: modules/%.v
$(HIDE)$(coqc) -R modules Mods $<