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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
(rule
(targets module1.cmo module1.cmi)
(action
(run ocamlc -g -c %{dep:module1.ml})))
(rule
(targets module2.cmo module2.cmi)
(deps module1.cmi lib1_mod1.cmi)
(action
(run ocamlc -g -c %{dep:module2.ml})))
(rule
(targets lib1.cma)
(action
(run ocamlc -g -a %{dep:lib1_mod1.cmo} %{dep:lib1_mod2.cmo} -o lib1.cma)))
(rule
(targets lib1_mod1.cmo lib1_mod1.cmi)
(action
(run ocamlc -g -c %{dep:lib1_mod1.ml})))
(rule
(targets lib1_mod2.cmo lib1_mod2.cmi)
(action
(run ocamlc -g -c %{dep:lib1_mod2.ml})))
(rule
(targets lib1.cma.js)
(action
(run
%{bin:js_of_ocaml}
--pretty
--source-map
%{dep:lib1.cma}
-o
%{targets})))
(rule
(targets module1.js)
(action
(run
%{bin:js_of_ocaml}
--pretty
--source-map
%{dep:module1.cmo}
-o
%{targets})))
(rule
(targets module2.js)
(action
(run
%{bin:js_of_ocaml}
--pretty
--source-map
%{dep:module2.cmo}
-o
%{targets})))
(rule
(targets stdlib.cma.js)
(action
(run
%{bin:js_of_ocaml}
--pretty
--source-map
%{lib:stdlib:stdlib.cma}
-o
%{targets})))
(rule
(targets std_exit.js)
(action
(run
%{bin:js_of_ocaml}
--pretty
--source-map
%{lib:stdlib:std_exit.cmo}
-o
%{targets})))
(rule
(targets myruntime.js)
(action
(run %{bin:js_of_ocaml} build-runtime --pretty --source-map -o %{targets})))
(rule
(targets bin.js)
(action
(run
%{bin:js_of_ocaml}
link
--pretty
%{dep:myruntime.js}
%{dep:stdlib.cma.js}
%{dep:lib1.cma.js}
%{dep:module1.js}
%{dep:module2.js}
%{dep:std_exit.js}
-o
%{targets})))
(rule
(target bin.referencejs)
(deps bin.js)
(action
(with-stdout-to
%{target}
(run node ./bin.js))))
(rule
(alias runtest)
(deps bin.reference bin.referencejs)
(action
(diff bin.reference bin.referencejs)))
(alias
(name default)
(deps
myruntime.js
stdlib.cma.js
std_exit.js
module2.js
module1.js
bin.js
index.html))
|