aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorGravatar Jason Gross <jagro@google.com>2016-07-19 10:22:39 -0700
committerGravatar Jason Gross <jagro@google.com>2016-07-20 18:46:04 -0700
commitb65228c08b17b361dd97fa24d9677ab165b3638b (patch)
tree0dec857d52dacff9b886a2891b6fac2d9d0feb7a /Makefile
parent568b0e125741695e254ab0e56b26ae47466a8869 (diff)
Add a separate non-specific target
This should fix #27. We depend on some files in the etc/coq-scripts submodule. Note that you need to either run `make cleanall -k` or `rm -f Makefile.coq` after pulling this to build the development.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile43
1 files changed, 27 insertions, 16 deletions
diff --git a/Makefile b/Makefile
index 6dfe0a04a..2cb9a1a63 100644
--- a/Makefile
+++ b/Makefile
@@ -1,17 +1,37 @@
MOD_NAME := Crypto
SRC_DIR := src
+STDTIME?=/usr/bin/time -f "$* (real: %e, user: %U, sys: %S, mem: %M ko)"
.PHONY: coq clean update-_CoqProject cleanall install \
- install-coqprime clean-coqprime coqprime
+ install-coqprime clean-coqprime coqprime \
+ specific non-specific
.DEFAULT_GOAL := coq
-SORT_COQPROJECT = sed 's,[^/]*/,~&,g' | env LC_COLLATE=C sort | sed 's,~,,g'
+-include Makefile.submodule
+
+STRICT_COQDEP ?= 1
+
+-include etc/coq-scripts/Makefile.coq.common
update-_CoqProject::
- $(Q)(echo '-R $(SRC_DIR) $(MOD_NAME)'; echo '-R Bedrock Bedrock'; (git ls-files 'src/*.v' 'Bedrock/*.v' | $(SORT_COQPROJECT))) > _CoqProject
+ $(SHOW)'ECHO > _CoqProject'
+ $(HIDE)(echo '-R $(SRC_DIR) $(MOD_NAME)'; echo '-R Bedrock Bedrock'; (git ls-files 'src/*.v' 'Bedrock/*.v' | $(SORT_COQPROJECT))) > _CoqProject
+
+clean::
+ rm -f submodule-update
+
+$(VOFILES): | coqprime
-coq: coqprime Makefile.coq
- $(MAKE) -f Makefile.coq
+# add files to this list to prevent them from being built by default
+UNMADE_VOFILES :=
+
+COQ_VOFILES := $(filter-out $(UNMADE_VOFILES),$(VOFILES))
+SPECIFIC_VO := $(filter src/Specific/%,$(VOFILES))
+NON_SPECIFIC_VO := $(filter-out $(SPECIFIC_VO),$(VO_FILES))
+
+specific: $(SPECIFIC_VO) coqprime
+non-specific: $(NON_SPECIFIC_VO) coqprime
+coq: $(COQ_VOFILES) coqprime
COQ_VERSION_PREFIX = The Coq Proof Assistant, version
COQ_VERSION := $(firstword $(subst $(COQ_VERSION_PREFIX),,$(shell $(COQBIN)coqc --version 2>/dev/null)))
@@ -31,19 +51,10 @@ clean-coqprime:
install-coqprime:
$(MAKE) -C $(COQPRIME_FOLDER) install
-Makefile.coq: Makefile _CoqProject
- $(Q)$(COQBIN)coq_makefile -f _CoqProject -o Makefile.coq
-
-clean: Makefile.coq
- $(MAKE) -f Makefile.coq clean
- rm -f Makefile.coq
-
-cleanall: clean clean-coqprime
+cleanall:: clean clean-coqprime
rm -f .dir-locals.el
-install: coq Makefile.coq
- $(MAKE) install-coqprime
- $(MAKE) -f Makefile.coq install
+install: coq install-coqprime
.dir-locals.el::
sed 's:@COQPRIME@:$(COQPRIME_FOLDER):g' .dir-locals.el.in > $@