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