aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaëtan Gilbert2019-04-04 14:34:53 +0200
committerGaëtan Gilbert2019-04-08 13:15:47 +0200
commitf8690d31f74f18ac1dd03d0b0922d2908b9c6807 (patch)
tree5714c5eccb0362c437212cddec36fd2716392a54
parent81df7850d40273814fcf78cf6df9057f19fa9a8e (diff)
coq_makefile install target: error if any file is missing
-rw-r--r--CHANGES.md2
-rwxr-xr-xtest-suite/coq-makefile/missing-install/run.sh17
-rw-r--r--tools/CoqMakefile.in3
3 files changed, 22 insertions, 0 deletions
diff --git a/CHANGES.md b/CHANGES.md
index ce8a787cd1..48d5a7af7e 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -227,6 +227,8 @@ Tools
`coqc`/`make` as well as printing to stdout, on both python2 and
python3.
+- coq_makefile's install target now errors if any file to install is missing.
+
Standard Library
- Added lemmas about monotonicity of `N.double` and `N.succ_double`, and about
diff --git a/test-suite/coq-makefile/missing-install/run.sh b/test-suite/coq-makefile/missing-install/run.sh
new file mode 100755
index 0000000000..4f36fdcb1c
--- /dev/null
+++ b/test-suite/coq-makefile/missing-install/run.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+
+. ../template/init.sh
+
+rm -rf _test; mkdir _test; cd _test
+
+cat > _CoqProject <<EOF
+-R theories Test
+theories/a.v
+theories/b.v
+EOF
+mkdir theories
+touch theories/a.v theories/b.v
+
+coq_makefile -f _CoqProject -o Makefile
+make theories/b.vo
+if make install; then exit 1; fi
diff --git a/tools/CoqMakefile.in b/tools/CoqMakefile.in
index bd9d8c9221..0236c549d5 100644
--- a/tools/CoqMakefile.in
+++ b/tools/CoqMakefile.in
@@ -468,6 +468,9 @@ beautify: $(BEAUTYFILES)
# Extensions can't assume when they run.
install:
+ $(HIDE)code=0; for f in $(FILESTOINSTALL); do\
+ if ! [ -f "$$f" ]; then >&2 echo $$f does not exist; code=1; fi \
+ done; exit $$code
$(HIDE)for f in $(FILESTOINSTALL); do\
df="`$(COQMKFILE) -destination-of "$$f" $(COQLIBS)`";\
if [ "$$?" != "0" -o -z "$$df" ]; then\