forked from mherkender/lua.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
65 lines (44 loc) · 1.58 KB
/
Makefile
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
# ex:noexpandtab:softtabstop=0
CLOSURE_COMPILER=closurecompiler/compiler.jar
NODE=node
GENERATED_FILES=lua2js lua.js lua.as lua.min.js lua+parser.js lua+parser.min.js
TESTS=$(patsubst %.lua,%.js,$(wildcard tests/*.lua))
build: $(GENERATED_FILES)
all: clean build test luajs.zip
node_modules/jison:
npm install jison
closurecompiler/compiler.jar:
wget http://dl.google.com/closure-compiler/compiler-latest.zip
mkdir -p closurecompiler
unzip -o compiler-latest.zip -d closurecompiler
rm -f compiler-latest.zip
lua2js: src/lua2js_start src/lua_parser.js src/lua2js_end
cat $^ > $@
chmod +x $@ || rm -f $@
src/lua_parser.js: src/build_lua_parser.js src/lua.jison node_modules/jison
cd . && $(NODE) $<
lua.js: src/lua_header.js src/lualib.js
cat $^ > $@
lua.as: src/lua_header.as src/lualib.js
cat $^ > $@
lua.min.js: lua.js $(CLOSURE_COMPILER)
java -jar $(CLOSURE_COMPILER) --compilation_level SIMPLE_OPTIMIZATIONS --js_output_file $@ --js $<
lua+parser.js: src/lua_header.js src/lua_parser.js src/lualib.js
cat $^ > $@
# TODO: SIMPLE_OPTIMIZATIONS is breaking lua_load
lua+parser.min.js: lua+parser.js $(CLOSURE_COMPILER)
java -jar $(CLOSURE_COMPILER) --compilation_level WHITESPACE_ONLY --js_output_file $@ --js $<
luajs.zip: $(GENERATED_FILES)
zip $@ $^
clean:
rm -rf $(GENERATED_FILES) src/lua_parser.js compiler-latest.zip luajs.zip
rm -f tests/*.js tests/*.tmp
clean_all: clean
rm -rf node_modules/jison closurecompiler
test: $(TESTS)
tests/%.js: tests/%.lua lua2js lua.js
$(NODE) lua2js $< [email protected]
cat lua.js [email protected] > $@
.PHONY: build clean test all
.SUFFIXES: