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