Moved gvm into compiler. Added --explicit for moec
[moescript.git] / makefile
blob84e1d96a7036563cd16da1ecfc89f423c96c7558
1 ifeq ($(OS),Windows_NT)
2 MKDIR = -@mkdir.exe -p
3 else
4 MKDIR = -@mkdir -p
5 endif
7 everything: __all
9 MOD = dist/moe
10 MOEC = $(MOD)/compiler
12 DIRS = $(MOD)/ $(MOD)/bin/ $(MOEC)/
14 $(DIRS):
15 $(MKDIR) $@
16 dirs: $(DIST)/ $(MOD)/ $(MOD)/bin/ $(MOEC)/
19 runtimeMods = $(MOD)/runtime.js $(MOD)/dummy.js
20 compilerMods = $(MOEC)/compiler.rt.js $(MOEC)/compiler.js $(MOEC)/codegen.js $(MOEC)/lexer.js $(MOEC)/parser.js $(MOEC)/resolve.js
21 commandLineMods = $(MOD)/bin/options.js $(MOD)/bin/moec.js $(MOD)/bin/moei.js $(MOD)/bin/moec $(MOD)/bin/moei
22 metadatas = $(MOD)/package.json $(MOEC)/package.json
24 moecCompoments = $(runtimeMods) $(compilerMods) $(commandLineMods) $(metadatas)
26 $(moecCompoments): $(MOD)/%: src/%
27 cp $< $@
29 moec: dirs $(moecCompoments)
31 PRELUDE_CONFIG = --explicit --bare -g exports -g moert --runtime-bind moert.runtime
32 $(MOD)/prelude.js: src/prelude/overture.js src/prelude/prelude.moe moec
33 node $(MOD)/bin/moec $(PRELUDE_CONFIG) --include-js $(word 1,$^) $(word 2,$^) -o $@
35 moePrelude: $(MOD)/prelude.js
37 ### Web test environment
38 ### Always updates all scripts
39 WEBTEST = doc/webtest
40 WEBMOD = $(WEBTEST)/moe
41 webtestDir:
42 $(MKDIR) doc
43 $(MKDIR) $(WEBTEST)
44 $(MKDIR) $(WEBMOD)
45 $(MKDIR) $(WEBMOD)/prelude
46 $(MKDIR) $(WEBMOD)/compiler
48 nessatEXE = node tools/nessat
50 webMods = $(subst $(MOD)/,$(WEBMOD)/,$(runtimeMods) $(compilerMods) $(MOD)/prelude.js)
51 $(webMods): $(WEBMOD)/%.js: $(MOD)/%.js
52 $(nessatEXE) $< $@ dist/
54 webtestENV = $(WEBTEST)/index.html $(WEBTEST)/webtest.css $(WEBTEST)/webtest.js $(WEBTEST)/mod.rt.js
55 $(webtestENV): $(WEBTEST)/% : webtest_env/%
56 cp $< $@
58 webtest: moec moePrelude webtestDir $(webMods) $(webtestENV)
60 clean:
61 rm -rf dist
62 rm -rf doc/webtest
64 force:
65 make clean
66 make everything
68 __all: webtest
70 publish:
71 git push origin master:master
72 git push cafe master:master
73 git push mirror master:master