-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
41 lines (29 loc) · 869 Bytes
/
Makefile
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
MODULES := Smallest Insort MergeSort Bitree
VS := $(MODULES:%=./%.v)
RELEASE := $(VS) Makefile
ssr.pname := $(SSRCOQ_LIB)
ssr.lname := Ssreflect
COQLIBS := ssr
MAKEFILE := Makefile.coq
COQNOTES := pnp
.PHONY: coq clean
all: coq
coq: $(MAKEFILE)
make -f $(MAKEFILE)
SCRUB=
define scrub
$(if $(SCRUB),sed -e 's|\.opt||' $1 > $1.tmp; mv $1.tmp $1;)
endef
define print_flag
-I $($1.pname)$(if $($1.lname), -as $($1.lname))
endef
COQ_MK := coq_makefile
COQ_MK_FLAGS := $(VS) COQC = "\$$(COQBIN)ssrcoq" COQLIBS = "$(foreach f,$(COQLIBS),$(call print_flag,$f)) -I . " COQFLAGS = "-q \$$(OPT) \$$(COQLIBS) -dont-load-proofs -compile"
$(MAKEFILE):
$(COQ_MK) $(COQ_MK_FLAGS) -o $(MAKEFILE)
$(call scrub,Makefile.coq)
%.vo: %.v
$(MAKE) -f $(MAKEFILE) $@
clean: $(MAKEFILE)
make -f $(MAKEFILE) clean
rm -f $(MAKEFILE)