aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 01fc0938e774858d186e5db64da0dd521718f880 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
MOD_NAME := Crypto
SRC_DIR  := src

.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::
	$(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

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-8.5:
	$(MAKE) -C coqprime-8.5

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

install: coq Makefile.coq
	$(MAKE) -f Makefile.coq install
	$(MAKE) -C coqprime install