-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
64 lines (49 loc) · 1.74 KB
/
Copy pathMakefile
File metadata and controls
64 lines (49 loc) · 1.74 KB
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
56
57
58
59
60
61
62
63
64
PREFIX = $(HOME)
CC = cc
OCAMLC = ocamlc
OCAMLCP = ocamlcp
OCAMLOPT = ocamlopt
OCAMLDEP = ocamldep
OCAMLFIND = ocamlfind
OCAMLPKG = -package zarith
OCAMLFLAGS = # -I +zarith
OCAMLLIBS = unix.cma
OCAMLOPTLIBS = unix.cmxa
SRCS = store.ml cycle.ml bexpr.ml
all: rho bpoly bmono
opt: rho bpoly; @true
install: opt test bmono
install rho.opt $(PREFIX)/bin/rho
install bpoly.opt $(PREFIX)/bin/bpoly
install bmono $(PREFIX)/bin/bmono
# tests for bpoly and cycle finding implementation
test: opt
./bpoly.opt -t
rho: rho.opt; @true
rho.bin: store.cmo cycle.cmo rho.ml
$(OCAMLC) -pp camlp5o $(OCAMLFLAGS) $(OCAMLLIBS) -o $@ $^
rho.opt: store.cmx cycle.cmx rho.ml
$(OCAMLOPT) -pp camlp5o $(OCAMLFLAGS) $(OCAMLOPTLIBS) -o $@ $^
bpoly: bpoly.bin bpoly.opt; @true
bpoly.bin: store.cmo cycle.cmo bexpr.cmo arithexp.cmo bpoly.ml
$(OCAMLFIND) $(OCAMLC) $(OCAMLPKG) $(OCAMLFLAGS) $(OCAMLLIBS) zarith.cma -o $@ $^
bpoly.opt: store.cmx cycle.cmx bexpr.cmx arithexp.cmx bpoly.ml
$(OCAMLFIND) $(OCAMLOPT) -O3 $(OCAMLPKG) $(OCAMLFLAGS) $(OCAMLOPTLIBS) zarith.cmxa -o $@ $^
arithexp: arithexp.cmx arithexp.cmo; @true
arithexp.cmx: arithexp.ml
$(OCAMLOPT) -pp camlp5o $(OCAMLFLAGS) $(OCAMLOPTLIBS) $^
arithexp.cmo: arithexp.ml
$(OCAMLC) -pp camlp5o $(OCAMLFLAGS) $(OCAMLLIBS) $^
bmono: bmono.c
$(CC) -O2 -o $@ $^
depend: $(SRCS)
$(OCAMLDEP) $^ > depend
-include depend
.SUFFIXES: .ml .mli .mly .mll .cmo .cmx .cmi
.ml.cmo: ; $(OCAMLFIND) $(OCAMLC) $(OCAMLPKG) $(OCAMLFLAGS) $(OCAMLLIBS) -c $<
.ml.cmx: ; $(OCAMLFIND) $(OCAMLOPT) $(OCAMLPKG) $(OCAMLFLAGS) $(OCAMLOPTLIBS) -c $<
.mli.cmi: ; $(OCAMLC) $(OCAMLFLAGS) $(OCAMLLIBS) -c $<
.mly.ml: ; $(OCAMLYACC) -v $<
.mly.mli: ; $(OCAMLYACC) $<
.mll.ml: ; $(OCAMLLEX) $<
clean:; rm -rf *~ *.cm* *.tmp *.bin *.opt *.out *.o depend bmono