aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile45
1 files changed, 34 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index de732faf9..01fc0938e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,26 +1,49 @@
-
MOD_NAME := Crypto
SRC_DIR := src
-.PHONY: coq clean install coqprime update-_CoqProject
+.PHONY: coq clean install coqprime-8.4 coqprime-8.5 coqprime update-_CoqProject
.DEFAULT_GOAL := coq
+VERBOSE = 0
+
+SILENCE_COQC_0 = @echo "COQC $<"; #
+SILENCE_COQC_1 =
+SILENCE_COQC = $(SILENCE_COQC_$(VERBOSE))
+
+SILENCE_COQDEP_0 = @echo "COQDEP $<"; #
+SILENCE_COQDEP_1 =
+SILENCE_COQDEP = $(SILENCE_COQDEP_$(VERBOSE))
+
+SORT_COQPROJECT = sed 's,[^/]*/,~&,g' | env LC_COLLATE=C sort | sed 's,~,,g'
+
update-_CoqProject::
- @(echo "-R $(SRC_DIR) $(MOD_NAME)"; git ls-files src/*.v) > _CoqProject
+ $(Q)(echo '-R $(SRC_DIR) $(MOD_NAME)'; echo '-R Bedrock Bedrock'; (git ls-files 'src/*.v' 'Bedrock/*.v' | $(SORT_COQPROJECT))) > _CoqProject
coq: coqprime Makefile.coq
- @$(MAKE) -f Makefile.coq
+ $(MAKE) -f Makefile.coq
+
+COQ_VERSION_PREFIX = The Coq Proof Assistant, version
+COQ_VERSION := $(firstword $(subst $(COQ_VERSION_PREFIX),,$(shell $(COQBIN)coqc --version 2>/dev/null)))
+
+ifneq ($(filter 8.5%,$(COQ_VERSION)),) # 8.5
+coqprime: coqprime-8.5
+else
+coqprime: coqprime-8.4
+endif
+
+coqprime-8.4:
+ $(MAKE) -C coqprime
-coqprime:
- @$(MAKE) -C coqprime
+coqprime-8.5:
+ $(MAKE) -C coqprime-8.5
Makefile.coq: Makefile _CoqProject
- @coq_makefile -f _CoqProject -o Makefile.coq 2> /dev/null
+ $(Q)$(COQBIN)coq_makefile -f _CoqProject -o Makefile.coq
clean: Makefile.coq
- @$(MAKE) -f Makefile.coq clean
- @rm -f Makefile.coq
+ $(MAKE) -f Makefile.coq clean
+ rm -f Makefile.coq
install: coq Makefile.coq
- @$(MAKE) -f Makefile.coq install
- @$(MAKE) -C coqprime install
+ $(MAKE) -f Makefile.coq install
+ $(MAKE) -C coqprime install