Ver number upgraded to 0.3
[moescript.git] / makefile
blobffe1b53fa2813a4d80c3d55af1efec843bb2bf7f
1 ifeq ($(OS),Windows_NT)
2 MKDIR = -@mkdir.exe -p
3 else
4 MKDIR = -@mkdir -p
5 endif
7 everything: __all
9 DIST = dist
10 NODEMODDIR = dist/node_modules
11 MOD = $(NODEMODDIR)/moe
12 MOEC = $(MOD)/compiler
13 dirs:
14 $(MKDIR) $(DIST)
15 $(MKDIR) $(MOD)
16 $(MKDIR) $(MOD)/bin
17 $(MKDIR) $(MOD)/prelude
18 $(MKDIR) $(MOEC)
21 moeRTMods = $(MOD)/runtime.js $(MOD)/dummy.js
22 $(moeRTMods): $(MOD)/%.js: src/%.js
23 cp $< $@
24 moePreludeMods = $(MOD)/prelude/overture.js
25 $(moePreludeMods): $(MOD)/prelude/%.js: src/prelude/%.js
26 cp $< $@
28 moert: dirs $(moeRTMods) $(moePreludeMods)
30 moecMods = $(MOEC)/compiler.rt.js $(MOEC)/compiler.js $(MOEC)/codegen.js $(MOEC)/lexer.js $(MOEC)/parser.js \
31 $(MOEC)/resolve.js $(MOEC)/gvm.js
32 moecNodeMods = $(MOD)/bin/opts.js $(MOD)/bin/moec.js $(MOD)/bin/moei.js $(MOD)/bin/moec $(MOD)/bin/moei
34 $(moecMods): $(MOEC)/%: src/compiler/%
35 cp $< $@
36 $(moecNodeMods): $(MOD)/bin/%: src/bin/%
37 cp $< $@
38 $(MOEC)/package.json: src/compiler/package.json
39 cp $< $@
41 moecPackageMeta: $(MOD)/package.json
42 $(MOD)/package.json: src/package.json
43 cp $< $@
45 moecLib: $(moecMods) $(MOEC)/package.json
46 moecNodeLib: $(moecNodeMods)
47 moecMain: moecLib moecNodeLib
48 moec: moert moecMain moecPackageMeta
50 preludeMoecEXE = node $(MOD)/bin/moec --no-prelude -g moert --runtime-bind moert.runtime
52 moeFullPreludeMods = $(MOD)/prelude/prelude.js
53 $(moeFullPreludeMods): $(MOD)/%.js: src/%.moe
54 $(preludeMoecEXE) -o $@ $<
56 moePrelude: $(moeFullPreludeMods)
57 node tools/preludesquash $(MOD)/prelude.js $(moePreludeMods) $(moeFullPreludeMods)
60 ### Web test environment
61 ### Always updates all scripts
62 WEBTEST = doc/webtest
63 WEBMOD = $(WEBTEST)/moe
64 webtestDir:
65 $(MKDIR) doc
66 $(MKDIR) $(WEBTEST)
67 $(MKDIR) $(WEBMOD)
68 $(MKDIR) $(WEBMOD)/prelude
69 $(MKDIR) $(WEBMOD)/compiler
71 nessatEXE = node tools/nessat
73 webMods = $(subst $(MOD)/,$(WEBMOD)/,$(moeRTMods) $(moecMods) $(MOD)/prelude.js)
74 $(webMods): $(WEBMOD)/%.js: $(MOD)/%.js
75 $(nessatEXE) $< $@ $(NODEMODDIR)/
76 webMods: $(webMods)
78 webtestENV = $(WEBTEST)/index.html $(WEBTEST)/smapdemo.html $(WEBTEST)/inputbox.js $(WEBTEST)/webtest.css $(WEBTEST)/demosmap.js $(WEBTEST)/webtest.js $(WEBTEST)/mod.rt.js
79 $(webtestENV):
80 cp $< $@
81 $(WEBTEST)/index.html: webtest_env/index.html
82 $(WEBTEST)/smapdemo.html: webtest_env/smapdemo.html
83 $(WEBTEST)/inputbox.js: webtest_env/inputbox.js
84 $(WEBTEST)/webtest.js: webtest_env/webtest.js
85 $(WEBTEST)/demosmap.js: webtest_env/demosmap.js
86 $(WEBTEST)/webtest.css: webtest_env/webtest.css
87 $(WEBTEST)/mod.rt.js: src/webrt/mod.rt.js
88 webtestENV: $(webtestENV)
90 webtest: moec moePrelude webtestDir webMods webtestENV
92 clean:
93 rm -rf dist
94 rm -rf doc/webtest
96 force:
97 make clean
98 make everything
100 __all: webtest
101 rm -rf $(MOD)/prelude
103 publish:
104 git push origin master:master
105 git push cafe master:master
106 git push mirror master:master