-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
119 lines (87 loc) · 3.68 KB
/
Makefile
File metadata and controls
119 lines (87 loc) · 3.68 KB
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
# Note that to compile the js client you must have the following in your path:
# Empscripten
# npm
# Note also that this makefile does NOT build proscript, gmpjs (yet) or the ios version (Probably ever)
PORT?=10080
VERSION := $(shell cat VERSION)
include Swing.src
include JS.src
CLIENTS?=swing-client js-client
MINIFY?=true
TEST_APP?=App
REACT_SRC=proactive-${VERSION}/src/jsx.pl \
proactive-${VERSION}/src/vdiff.pl \
proactive-${VERSION}/src/react.pl \
proactive-${VERSION}/src/dom.pl
all: $(CLIENTS) $(REACT_SRC)
.src: $(SWING_SRC) Swing.src
@echo $(SWING_SRC) > $@
build:
mkdir build
.PHONY: $(CLIENTS) package
swing-client: proactive-${VERSION}/lib/proactive.jar
js-client: force-proscript-build proactive-${VERSION}/lib/proactive.js proactive-${VERSION}/lib/proscript.js.mem proactive-${VERSION}/css/proactive.css
ifeq ($(OS), Windows_NT)
CLASSPATH_SEPARATOR=\;
else
CLASSPATH_SEPARATOR=:
endif
proactive-${VERSION}/lib/proactive.jar: .src build $(BOILERPLATE_GPJ)
@mkdir -p proactive-${VERSION}/lib
javac -cp dist/gpj.jar${CLASSPATH_SEPARATOR}dist/java_websocket.jar -Xlint:unchecked @.src -d build
jar cf proactive-${VERSION}/lib/proactive.jar -C build/ . -C src boilerplate.pl -C src boilerplate_gpj.pl -C src vdiff.pl
node_modules/brfs:
npm install brfs
node_modules/xmlhttprequest:
npm install xmlhttprequest
node_modules/uglify-js:
npm install uglify-js
node_modules/browserify:
npm install browserify
src/version.js: VERSION
echo "module.exports='$(VERSION)';" > $@
src/Version.java: VERSION
echo 'package org.proactive; public class Version { public static String version="$(VERSION)";}' > $@
proactive-${VERSION}/lib/proactive.js: $(JS_SRC) $(REACT_SRC) src/boilerplate.pl node_modules/brfs node_modules/xmlhttprequest node_modules/uglify-js node_modules/browserify proscript/proscript.js.mem
# We have to disable warnings here because emscripten generates output containing a HUGE amount of unused vars and functions
# and uglify produces pages and pages of warnings about them if we dont stop it
mkdir -p proactive-${VERSION}/lib
ifeq ($(MINIFY),true)
NODE_PATH=proscript node_modules/browserify/bin/cmd.js --standalone Proactive -t brfs src/core.js | node_modules/uglify-js/bin/uglifyjs -m > proactive-${VERSION}/lib/proactive.js
else
NODE_PATH=proscript node_modules/browserify/bin/cmd.js --standalone Proactive -t brfs src/core.js > proactive-${VERSION}/lib/proactive.js
endif
proactive-${VERSION}/css/proactive.css: css/proactive.css
@mkdir -p proactive-${VERSION}/css
cp $< $@
proscript/proscript.js.mem: force-proscript-build
force-proscript-build:
@make -C proscript
proactive-${VERSION}/lib/proscript.js.mem: proscript/proscript.js.mem
@mkdir -p proactive-${VERSION}/lib
cp $< $@
run-swing-client: swing-client
java -cp dist/gpj.jar${CLASSPATH_SEPARATOR}dist/java_websocket.jar${CLASSPATH_SEPARATOR}proactive-${VERSION}/lib/proactive.jar org.proactive.React ${SWING_ARGS} "http://localhost:${PORT}/react" ${TEST_APP}
run-server:
swipl -f src/server.pl -g "start_react_server(${PORT}), ['demo/App']"
proactive-${VERSION}/src/jsx.pl: src/jsx.pl
@mkdir -p proactive-${VERSION}/src
cp $< $@
proactive-${VERSION}/src/vdiff.pl: src/vdiff.pl
@mkdir -p proactive-${VERSION}/src
cp $< $@
proactive-${VERSION}/src/react.pl: src/react.pl
@mkdir -p proactive-${VERSION}/src
cp $< $@
proactive-${VERSION}/src/dom.pl: src/dom.pl
@mkdir -p proactive-${VERSION}/src
cp $< $@
package: force-proscript-build $(CLIENTS) $(REACT_SRC)
mkdir -p proactive-${VERSION}
zip -r proactive-${VERSION}.zip proactive-${VERSION}
# rm -rf proactive-${VERSION}
clean:
make -C proscript clean
rm -rf build
rm -rf proactive-*
rm -f .src