bc8dbc0dd0c5de4773f488ef5650286ca49b76b9
[fw/altos] / ao-tools / altosui / Makefile.am
1 JAVAROOT=classes
2 AM_JAVACFLAGS=-encoding UTF-8
3
4 CLASSPATH_ENV=CLASSPATH="classes/altosui/*:../libaltos/libaltosJNI/*:$(FREETTS)/*:/usr/share/java/*"
5
6 altosui_JAVA = \
7         AltosChannelMenu.java \
8         AltosConfig.java \
9         AltosConfigUI.java \
10         AltosConvert.java \
11         AltosCRCException.java \
12         AltosCSV.java \
13         AltosCSVUI.java \
14         AltosDebug.java \
15         AltosDeviceDialog.java \
16         AltosDevice.java \
17         AltosEepromDownload.java \
18         AltosEepromMonitor.java \
19         AltosEepromReader.java \
20         AltosEepromRecord.java \
21         AltosFile.java \
22         AltosFlash.java \
23         AltosFlashUI.java \
24         AltosFlightInfoTableModel.java \
25         AltosFlightStatusTableModel.java \
26         AltosGPS.java \
27         AltosGreatCircle.java \
28         AltosHexfile.java \
29         Altos.java \
30         AltosLine.java \
31         AltosLogfileChooser.java \
32         AltosLog.java \
33         AltosParse.java \
34         AltosPreferences.java \
35         AltosReader.java \
36         AltosRecord.java \
37         AltosRomconfig.java \
38         AltosRomconfigUI.java \
39         AltosSerial.java \
40         AltosSerialMonitor.java \
41         AltosState.java \
42         AltosTelemetry.java \
43         AltosTelemetryReader.java \
44         AltosUI.java \
45         AltosVoice.java
46
47 FREETTS_CLASS= \
48         cmudict04.jar \
49         cmulex.jar \
50         cmu_time_awb.jar \
51         cmutimelex.jar \
52         cmu_us_kal.jar \
53         en_us.jar \
54         freetts.jar
55
56 LIBALTOS= \
57         libaltos.so \
58         libaltos.dylib \
59         altos.dll
60
61 JAR=altosui.jar
62
63 FATJAR=altosui-fat.jar
64
65 # Icons
66 JAVA_ICON=$(top_srcdir)/icon/altus-metrum-16x16.jpg
67 WINDOWS_ICON=$(top_srcdir)/icon/altus-metrum.ico
68
69 # Firmware
70 FIRMWARE_TD=$(top_srcdir)/src/teledongle-v0.2-$(VERSION).ihx
71 FIRMWARE_TM=$(top_srcdir)/src/telemetrum-v1.0-$(VERSION).ihx
72 FIRMWARE=$(FIRMWARE_TM) $(FIRMWARE_TD)
73
74 # Distribution targets
75 LINUX_DIST=Altos-Linux-$(VERSION).tar.bz2
76 MACOSX_DIST=Altos-Mac-$(VERSION).zip
77 WINDOWS_DIST=Altos-Windows-$(VERSION_DASH).exe
78
79 FAT_FILES=$(FATJAR) $(FREETTS_CLASS)
80
81 LINUX_FILES=$(FAT_FILES) libaltos.so $(FIRMWARE)
82 LINUX_EXTRA=altosui-fat
83
84 MACOSX_FILES=$(FAT_FILES) libaltos.dylib
85 MACOSX_EXTRA=$(FIRMWARE)
86
87 WINDOWS_FILES=$(FAT_FILES) altos.dll $(top_srcdir)/telemetrum.inf $(WINDOWS_ICON)
88
89 all-local: classes/altosui $(JAR) $(FATJAR) altosui altosui-test
90
91 clean-local:
92         -rm -rf classes/altosui $(JAR) $(FATJAR) \
93                 $(LINUX_DIST) $(MACOSX_DIST) $(WINDOWS_DIST) $(FREETTS_CLASS) \
94                 $(LIBALTOS) Manifest.txt Manifest-fat.txt altos-windows.log \
95                 altosui altosui-test macosx linux
96
97 fat: $(FATJAR) $(LINUX_DIST) $(MACOSX_DIST) $(WINDOWS_DIST)
98
99 altosuidir=$(datadir)/java
100
101 install-altosuiJAVA: altosui.jar
102         @$(NORMAL_INSTALL)
103         test -z "$(altosuidir)" || $(MKDIR_P) "$(DESTDIR)$(altosuidir)"
104         echo " $(INSTALL_DATA)" "$<" "'$(DESTDIR)$(altosuidir)/altosui.jar'"; \
105         $(INSTALL_DATA) "$<" "$(DESTDIR)$(altosuidir)"
106
107 classes/altosui:
108         mkdir -p classes/altosui
109
110 $(JAR): classaltosui.stamp Manifest.txt $(JAVA_ICON)
111         jar cfm $@ Manifest.txt \
112                 -C $(top_srcdir)/icon altus-metrum-16x16.jpg \
113                 -C classes altosui \
114                 -C ../libaltos libaltosJNI
115
116 $(FATJAR): classaltosui.stamp Manifest-fat.txt $(FREETTS_CLASS) $(LIBALTOS) $(JAVA_ICON)
117         jar cfm $@ Manifest-fat.txt \
118                 -C $(top_srcdir)/icon altus-metrum-16x16.jpg \
119                 -C classes altosui \
120                 -C ../libaltos libaltosJNI
121
122 Manifest.txt: Makefile
123         echo 'Main-Class: altosui.AltosUI' > $@
124         echo "Class-Path: $(FREETTS)/freetts.jar" >> $@
125
126 Manifest-fat.txt:
127         echo 'Main-Class: altosui.AltosUI' > $@
128         echo "Class-Path: freetts.jar" >> $@
129
130 altosui: Makefile
131         echo "#!/bin/sh" > $@
132         echo 'exec java  -cp "$(FREETTS)/*" -Djava.library.path="$(libdir)" -jar "$(altosuidir)/altosui.jar"' >> $@
133         chmod +x $@
134
135 altosui-test: Makefile
136         echo "#!/bin/sh" > $@
137         echo 'exec java -cp "$(FREETTS)/*" -Djava.library.path="../libaltos" -jar altosui.jar' >> $@
138         chmod +x $@
139
140 $(LIBALTOS):
141         -rm -f "$@"
142         $(LN_S) ../libaltos/"$@" .
143
144 $(FREETTS_CLASS):
145         -rm -f "$@"
146         $(LN_S) "$(FREETTS)"/"$@" .
147
148 $(LINUX_DIST): $(LINUX_FILES) $(LINUX_EXTRA)
149         -rm -f $@
150         -rm -rf linux
151         mkdir -p linux/AltOS
152         cp -p $(LINUX_FILES) linux/AltOS
153         cp -p altosui-fat linux/AltOS/altosui
154         chmod +x linux/AltOS/altosui
155         tar cjf $@ -C linux AltOS
156
157 $(MACOSX_DIST): $(MACOSX_FILES) $(MACOSX_EXTRA)
158         -rm -f $@
159         -rm -rf macosx
160         mkdir macosx
161         cp -a AltosUI.app macosx/
162         mkdir -p macosx/AltOS macosx/AltosUI.app/Contents/Resources/Java
163         cp -p $(FATJAR) macosx/AltosUI.app/Contents/Resources/Java/altosui.jar
164         cp -p $(FREETTS_CLASS) libaltos.dylib macosx/AltosUI.app/Contents/Resources/Java
165         cp -p $(MACOSX_EXTRA) macosx/AltOS
166         cd macosx && zip -r ../$@ AltosUI.app AltOS
167
168 $(WINDOWS_DIST): $(WINDOWS_FILES) altos-windows.nsi
169         -rm -f $@
170         makensis -Oaltos-windows.log "-XOutFile $@" "-DVERSION=$(VERSION)" altos-windows.nsi