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