altosui: Split status and info panels into separate files
[fw/altos] / ao-tools / altosui / Makefile
1 .SUFFIXES: .java .class
2
3 CLASSPATH=classes:./*
4 CLASSFILES=\
5         AltosConvert.class \
6         AltosEeprom.class \
7         AltosEepromMonitor.class \
8         AltosFile.class \
9         AltosFlightInfoTableModel.class \
10         AltosFlightStatusTableModel.class \
11         AltosGPS.class \
12         AltosGreatCircle.class \
13         AltosLog.class \
14         AltosParse.class \
15         AltosPreferences.class \
16         AltosSerialMonitor.class \
17         AltosSerial.class \
18         AltosState.class \
19         AltosTelemetry.class \
20         AltosUI.class \
21         AltosDevice.class \
22         AltosDeviceDialog.class \
23         AltosVoice.class
24
25 FREETTSSRC=/home/keithp/src/freetts/freetts-1.2.2
26 FREETTSLIB=$(FREETTSSRC)/lib
27 FREETTSJAR= \
28         cmudict04.jar \
29         cmulex.jar \
30         cmu_time_awb.jar \
31         cmutimelex.jar \
32         cmu_us_kal.jar \
33         en_us.jar \
34         freetts.jar
35
36 JAVAFLAGS=-Xlint:unchecked
37
38 OS:=$(shell uname)
39
40 ifeq ($(OS),Linux)
41 ALTOSUI_APP=altosui
42 endif
43
44 ifeq ($(OS),Darwin)
45 ALTOSUI_APP=AltosUI.app/Contents/Resources/Java/altosui.jar
46 endif
47
48 all: altosui.jar $(ALTOSUI_APP)
49
50 $(CLASSFILES):
51
52 .java.class:
53         javac -encoding UTF8 -classpath "$(CLASSPATH)" $(JAVAFLAGS) $*.java
54
55 altosui.jar: classes/altosui classes/libaltosJNI $(FREETTSJAR) $(CLASSFILES) Manifest.txt
56         cd ./classes && jar cfm ../$@ altosui/Manifest.txt altosui/*.class libaltosJNI/*.class
57
58 classes/altosui:
59         mkdir -p classes
60         ln -s .. classes/altosui
61
62 classes/libaltosJNI:
63         mkdir -p classes
64         ln -s ../../libaltos/libaltosJNI classes/libaltosJNI
65
66 $(FREETTSJAR):
67         ln -s $(FREETTSLIB)/$@ .
68
69 ifeq ($(OS),Darwin)
70 RESOURCES=altosui.jar $(FREETTSJAR) ../libaltos/libaltos.dylib
71
72 $(ALTOSUI_APP): $(RESOURCES)
73         mkdir -p AltosUI.app/Contents/Resources/Java
74         cp $(RESOURCES) AltosUI.app/Contents/Resources/Java
75
76 endif
77
78 ifeq ($(OS),Linux)
79 altosui:
80         echo "#!/bin/sh" > $@
81         echo "exec java -Djava.library.path=../libaltos -jar altosui.jar" >> $@
82         chmod +x ./altosui
83 endif
84
85 clean:
86         rm -f *.class $(FREETTSJAR) altosui.jar
87         rm -f AltosUI.app/Contents/Resources/Java/*
88         rm -rf classes