-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
66 lines (46 loc) · 2.13 KB
/
Makefile
File metadata and controls
66 lines (46 loc) · 2.13 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
65
66
# Makefile rules for compiling and linking based on:
# http://caml.inria.fr/pub/docs/oreilly-book/html/book-ora107.html
# http://caml.inria.fr/pub/docs/oreilly-book/html/book-ora066.html
all: logo.native logoweb.js run
TEST_PROGRAMS := $(wildcard sample_programs/*.logo)
TEST_GRAPHICS = $(TEST_PROGRAMS:.logo=.png)
test: $(TEST_GRAPHICS)
%.png: %.logo logo.native
./logo.native $<
convert `basename $@` -trim `basename $@`
run: logo.native sample_programs/tree.logo
./logo.native sample_programs/tree.logo
cairographics: cairographics.ml
cp cairographics.ml turtlegraphics.ml
logo.native: logo.ml logoturtle.ml cairographics parser.mly lexer.mll
ocamlbuild -use-menhir -tag thread -use-ocamlfind -quiet -pkg core -pkg cairo2 $@
# Uncomment to create bytecode for the cairographics backend
# logoturtle.byte: logoturtle.ml
# ocamlfind ocamlc -linkpkg -thread -package cairo2 $< -o $@
lexer.ml: lexer.mll
ocamllex lexer.mll
parser.ml parser.mli: parser.mly
menhir parser.mly
webgraphics: webgraphics.ml
cp webgraphics.ml turtlegraphics.ml
turtlegraphics.cmo: webgraphics
ocamlfind ocamlc -package lwt -package js_of_ocaml -package js_of_ocaml.syntax -syntax camlp4o -linkpkg -o turtlegraphics.byte turtlegraphics.ml
logoturtle.cmo: logoturtle.ml turtlegraphics.cmo
ocamlc -c logoturtle.ml
parser.cmo: parser.mli parser.ml logoturtle.cmo
ocamlc -c parser.mli
ocamlc -c parser.ml
lexer.cmo: lexer.ml parser.cmo
ocamlc -c lexer.ml
logoturtle.byte: logoturtle.ml lexer.cmo parser.cmo turtlegraphics.cmo
ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax -syntax camlp4o -linkpkg turtlegraphics.cmo logoturtle.ml -o logoturtle.byte
logoweb.byte: logoweb.ml logoturtle.cmo parser.cmo lexer.cmo
ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax -syntax camlp4o -linkpkg turtlegraphics.cmo logoturtle.cmo lexer.cmo parser.cmo logoweb.ml -o logoweb.byte
logoweb.js: logoweb.byte
js_of_ocaml --pretty --no-inline --debug-info logoweb.byte
graphics.png: logoturtle.byte
-rm $@;
./logoturtle.byte
clean:
-rm *.cmo *.cmi *.png *.byte *.native parser.mli parser.ml lexer.ml logoweb.js turtlegraphics.ml
-rm -rf _build/