forked from thetrime/proscript
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
63 lines (48 loc) · 2.32 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
VERSION:=$(shell cat version.txt)
JSC=/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc
DEBUG=false
SWIPL=/usr/local/bin/swipl --traditional
SDK:=proscriptls_sdk_$(VERSION)
all: dist/proscriptls.js dist/proscriptls_engine_for_node.js doc examples
.PHONY: all clean doc examples gc dump-state test_proscript sdk test dump-dangling
clean:
cd src/engine && make clean
cd src/system && make clean
cd src/docs && make clean
cd examples && make clean
rm -f dist/proscriptls.js dist/proscriptls_state.js dist/proscriptls_engine.js dist/proscriptls_for_compile.js
rm -rf $(SDK)
dist/proscriptls_state.js: src/system/* src/tools/wam_bootstrap.pl
cd src/system && make
dist/proscriptls_engine.js: src/engine/* src/tools/js_preprocess.pl
cd src/engine && make
# invoke node_goal.js to check that there are no dangling references in state recorded in dist/proscriptls_state.js.
dist/proscriptls.js: dist/proscriptls_engine.js dist/proscriptls_state.js dist/proscriptls_engine_for_node.js node_tools/node_goal.js\
node_tools/node_goal_module.js
cat dist/proscriptls_engine.js dist/proscriptls_state.js > dist/proscriptls.js
node node_tools/node_goal.js dist/proscriptls_state.js true
dist/proscriptls_engine_for_node.js: dist/proscriptls_engine.js node_tools/node_standalone.js node_tools/node_exports_init.js
cat dist/proscriptls_engine.js node_tools/node_standalone.js node_tools/node_exports_init.js > dist/proscriptls_engine_for_node.js
doc:
cd src/docs && make
examples:
cd examples && make
gc: dist/proscriptls.js src/engine/standalone.js
$(JSC) dist/proscriptls.js src/engine/standalone.js -e "gc_test($(DEBUG))"
dump-state: dist/proscriptls.js src/engine/standalone.js
$(JSC) dist/proscriptls.js src/engine/standalone.js -e "dumpPredicate('wam_compiler:pop_current_compilation_module', 2, 'load')"
test_proscript: dist/proscriptls.js src/engine/standalone.js
$(JSC) dist/proscriptls.js src/engine/standalone.js -e "proscriptls(\"trace, mem(X,[a,b]), mem(X,[c,b]),writeln(X),notrace)\")"
sdk:
rm -rf $(SDK)
mkdir $(SDK)
cp index.html $(SDK)
cp README.SDK.md $(SDK)
cp -r node_tools $(SDK)
cp -r dist $(SDK)/dist
cp -r examples $(SDK)/examples
cp -r docs $(SDK)/docs
cp -r library $(SDK)/library
cp -r terminal $(SDK)/terminal
tar -zcvf $(SDK).tar.gz $(SDK)
rm -rf $(SDK)