-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
68 lines (48 loc) · 1.26 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
66
67
PB=protoc
JC=javac
JAR=jar
JAVA=java
CLASSPATH=./lib/jbox2d-library-2.1.2.2.jar:./lib/slf4j-api-1.6.4.jar:./lib/protobuf-java-2.6.1.jar:./bin
JCFLAGS=-cp $(CLASSPATH) -d ./bin
JARFLAGS=cf
JARFILE=out/crash.jar
APP=Crash.app
APPRES=$(APP)/Contents/Resources
APPJAVA=$(APPRES)/Java
# Building targets
all: build
build: buildjava
buildproto: .protobuf-generated
$(PB) -I=protobuf/ --java_out=.protobuf-generated/ protobuf/*.proto
buildjava: bin clearbin buildproto
$(JC) $(JCFLAGS) src/*.java .protobuf-generated/*/*.java
app: jar cleanapp
unzip -d $(APP) .crashapp.zip
cp OSXIcon.icns $(APPRES)/icon.icns || true # we don't care if there's no icon
cp $(JARFILE) $(APPJAVA)/app.jar
cp -r lib $(APPJAVA)/
python makehelp/finishapp.py $(CLASSPATH) CrashClient
jar: buildjava cleanjar out
$(JAR) $(JARFLAGS) $(JARFILE) -C bin .
# Running targets
run: build
$(JAVA) -cp $(CLASSPATH) CrashClient
runserver: build
$(JAVA) -cp $(CLASSPATH) CrashServer
# Directory creation targets
.protobuf-generated:
mkdir .protobuf-generated
bin:
mkdir bin
out:
mkdir out
# Clearing/Cleaning targets
clearbin: # avoids leaving renamed/deleted classes
rm -rf bin/*
clean: cleanjar cleanapp
rm -rf bin
rm -rf .protobuf-generated
cleanjar:
rm -f $(JARFILE)
cleanapp:
rm -rf $(APP)