aboutsummaryrefslogtreecommitdiff
path: root/mathcomp/ssreflect/Makefile
blob: 76e29844fee43107832d7eff8f2724b8b15a92be (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
H=@

ifeq "$(COQBIN)" ""
COQBIN=$(dir $(shell which coqtop))/
endif

BRANCH_coq = $(shell $(COQBIN)/coqtop -v | head -1 | sed 's/.*version \([0-9]\.[0-9]\)[^ ]* .*/v\1/')

HASH_coq = $(shell echo Quit. | $(COQBIN)/coqtop 2>&1 | head -1 | sed 's/^.*(\([a-f0-9]*\)).*/\1/' )

HASH_coq_v85beta1 = eaa3d0b15adf4eb11ffb00ab087746a5b15c4d5d


ifeq "$(HASH_coq)" "$(HASH_coq_v85beta1)"
V=v8.5beta1
else
V=$(BRANCH_coq)
endif

OLD_MAKEFLAGS:=$(MAKEFLAGS)
MAKEFLAGS+=-B

.DEFAULT_GOAL := all

%:
	$(H)[ -e Makefile.coq ] || $(call coqmakefile)
	# Override COQDEP to find only the "right" copy .ml files
	$(H)MAKEFLAGS=$(OLD_MAKEFLAGS) $(MAKE) --no-print-directory \
		-f Makefile.coq $* \
		COQDEP='$(COQBIN)/coqdep -exclude-dir plugin -c'

define coqmakefile
	(echo "Generating Makefile.coq for Coq $(V) with COQBIN=$(COQBIN)";\
	ln -sf plugin/$(V)/ssreflect.mllib .;\
	ln -sf plugin/$(V)/ssrmatching.mli .;\
	ln -sf plugin/$(V)/ssrmatching.ml4 .;\
	ln -sf plugin/$(V)/ssreflect.ml4 .;\
	$(COQBIN)/coq_makefile -f Make -o Makefile.coq)
endef

clean:
	$(H)MAKEFLAGS=$(OLD_MAKEFLAGS) $(MAKE) --no-print-directory \
		-f Makefile.coq clean
	$(H)rm -f Makefile.coq