-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
55 lines (34 loc) · 1.02 KB
/
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
.PHONY: all agda coq haskell idris
all: agda coq haskell idris
.PHONY: clean agda-clean coq-clean haskell-clean idris-clean
clean: agda-clean coq-clean haskell-clean idris-clean
agda := $(wildcard agda-explicit/*.agda) $(wildcard agda-implicit/*.agda)
agdai := $(patsubst %.agda,%.agdai,$(agda))
agda: $(agdai)
%.agdai: %.agda
agda -i /usr/local/Cellar/agda/2.4.2.2_1/agda-stdlib/src -i $(@D) $< | grep -v Skipping
agda-clean:
rm -rf $(agdai)
v := $(wildcard coq-explicit/*.v) $(wildcard coq-implicit/*.v)
vo := $(patsubst %.v,%.vo,$(v))
glob := $(patsubst %.v,%.glob,$(v))
coq: $(vo)
%.vo: %.v
coqtop -compile $(patsubst %.v,%,$<)
coq-clean:
rm -rf $(vo) $(glob)
hs := $(wildcard haskell/*.hs)
hi := $(patsubst %.hs,%.hi,$(hs))
o := $(patsubst %.hs,%.o,$(hs))
haskell: $(hi)
%.hi: %.hs
ghc -Wall $<
haskell-clean:
rm -rf $(hi) $(o)
idr := $(wildcard idris-explicit/*.idr) $(wildcard idris-implicit/*.idr)
ibc := $(patsubst %.idr,%.ibc,$(idr))
idris: $(ibc)
%.ibc: %.idr
idris --check $<
idris-clean:
rm -rf $(ibc)