telegps: Add first version of telegps
[fw/altos] / telegps / Makefile.am
1 JAVAROOT=classes
2 AM_JAVACFLAGS=-target 1.6 -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked -source 6
3
4 man_MANS=telegps.1
5
6 altoslibdir=$(libdir)/altos
7
8 CLASSPATH_ENV=mkdir -p $(JAVAROOT); CLASSPATH=".:classes:../altoslib/*:../altosuilib/*:../libaltos:$(JCOMMON)/jcommon.jar:$(JFREECHART)/jfreechart.jar"
9
10 bin_SCRIPTS=telegps
11
12 telegpsdir=$(datadir)/java
13
14 telegps_JAVA= \
15         TeleGPS.java \
16         TeleGPSStatus.java \
17         TeleGPSStatusUpdate.java
18
19 JFREECHART_CLASS= \
20     jfreechart.jar
21
22 JCOMMON_CLASS=\
23     jcommon.jar
24
25 JAR=telegps.jar
26
27 FATJAR=telegps-fat.jar
28
29 LIBALTOS= \
30         libaltos.so \
31         libaltos.dylib \
32         altos64.dll \
33         altos.dll
34
35 ALTOSLIB_CLASS=\
36         altoslib_$(ALTOSLIB_VERSION).jar
37
38 ALTOSUILIB_CLASS=\
39         altosuilib_$(ALTOSUILIB_VERSION).jar
40
41 # Icons
42 ICONDIR=$(top_srcdir)/icon
43
44 JAVA_ICONS=\
45         $(ICONDIR)/telegps-16.png \
46         $(ICONDIR)/telegps-32.png \
47         $(ICONDIR)/telegps-48.png \
48         $(ICONDIR)/telegps-64.png \
49         $(ICONDIR)/telegps-128.png \
50         $(ICONDIR)/telegps-256.png
51
52 # icon base names for jar
53 ICONJAR= -C $(ICONDIR) telegps-16.png \
54         -C $(ICONDIR) telegps-32.png \
55         -C $(ICONDIR) telegps-48.png \
56         -C $(ICONDIR) telegps-64.png \
57         -C $(ICONDIR) telegps-128.png \
58         -C $(ICONDIR) telegps-256.png
59
60 WINDOWS_ICON=$(ICONDIR)/telegps.ico
61
62 desktopdir = $(datadir)/applications
63 desktop_file = telegps.desktop
64 desktop_SCRIPTS = $(desktop_file)
65
66 all-local: telegps-test telegps-jdb $(JAR)
67
68 clean-local:
69         -rm -rf classes $(JAR) $(FATJAR) \
70                 TeleGPS-Linux-*.tar.bz2 TeleGPS-Mac-*.dmg TeleGPS-Windows-*.exe \
71                 $(ALTOSLIB_CLASS) \
72                 $(ALTOSUILIB_CLASS) \
73                 $(JFREECHART_CLASS) $(JCOMMON_CLASS) $(LIBALTOS) Manifest.txt Manifest-fat.txt \
74                 telegps telegps-test telegps-jdb macosx linux windows telegps-windows.log \
75                 telegps-windows.nsi
76
77 EXTRA_DIST = $(desktop_file).in
78
79 $(desktop_file): $(desktop_file).in
80         sed -e 's#%bindir%#@bindir@#' -e 's#%icondir%#$(datadir)/icons/hicolor/scalable/apps#' ${srcdir}/telegps.desktop.in > $@
81         chmod +x $@
82
83 LINUX_DIST=TeleGPS-Linux-$(VERSION).tar.bz2
84 LINUX_SH=TeleGPS-Linux-$(VERSION).sh
85 MACOSX_DIST=TeleGPS-Mac-$(VERSION).dmg
86 WINDOWS_DIST=TeleGPS-Windows-$(VERSION_DASH).exe
87
88 MICROPEAK_DOC=$(top_srcdir)/doc/telegps.pdf
89
90 DOC=$(MICROPEAK_DOC)
91
92 FAT_FILES=$(FATJAR) $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) $(FREETTS_CLASS) $(JFREECHART_CLASS) $(JCOMMON_CLASS)
93
94 LINUX_FILES=$(FAT_FILES) libaltos.so $(FIRMWARE) $(DOC) telegps.desktop.in ../icon/telegps.svg
95 LINUX_EXTRA=telegps-fat telegps.desktop.in
96
97 MACOSX_DRIVER_URL=http://www.ftdichip.com/Drivers/VCP/MacOSX/FTDIUSBSerialDriver_v2_2_18.dmg
98 MACOSX_DRIVER=FTDIUSBSerialDriver_v2_2_18.dmg
99 MACOSX_INFO_PLIST=Info.plist
100 MACOSX_README=ReadMe-Mac.rtf
101 MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(MACOSX_DRIVER) $(MACOSX_README) $(DOC)
102
103 $(MACOSX_DRIVER):
104         wget $(MACOSX_DRIVER_URL)
105
106 WINDOWS_DRIVER_URL=http://www.ftdichip.com/Drivers/CDM/CDM20824_Setup.exe
107 WINDOWS_DRIVER=CDM20824_Setup.exe
108
109 $(WINDOWS_DRIVER):
110         wget $(WINDOWS_DRIVER_URL)
111
112 WINDOWS_FILES=$(FAT_FILES) altos.dll altos64.dll $(DOC) $(WINDOWS_ICON) $(WINDOWS_DRIVER)
113
114 if FATINSTALL
115
116 FATTARGET=$(FATDIR)/$(VERSION)
117
118 LINUX_DIST_TARGET=$(FATTARGET)/$(LINUX_DIST)
119 LINUX_SH_TARGET=$(FATTARGET)/$(LINUX_SH)
120 MACOSX_DIST_TARGET=$(FATTARGET)/$(MACOSX_DIST)
121 WINDOWS_DIST_TARGET=$(FATTARGET)/$(WINDOWS_DIST)
122
123 fat: $(LINUX_DIST_TARGET) $(LINUX_SH_TARGET) $(MACOSX_DIST_TARGET) $(WINDOWS_DIST_TARGET)
124
125 $(LINUX_DIST_TARGET): $(LINUX_DIST)
126         mkdir -p $(FATTARGET)
127         cp -p $< $@
128
129 $(LINUX_SH_TARGET): $(LINUX_SH)
130         mkdir -p $(FATTARGET)
131         cp -p $< $@
132
133 $(MACOSX_DIST_TARGET): $(MACOSX_DIST)
134         mkdir -p $(FATTARGET)
135         cp -p $< $@
136
137 $(WINDOWS_DIST_TARGET): $(WINDOWS_DIST)
138         mkdir -p $(FATTARGET)
139         cp -p $< $@
140
141 else
142 fat: $(LINUX_DIST) $(LINUX_SH) $(MACOSX_DIST) $(WINDOWS_DIST)
143 endif
144
145 telegps: Makefile
146         echo "#!/bin/sh" > $@
147         echo 'exec java  -Djava.library.path="$(altoslibdir)" -jar "$(telegpsdir)/telegps.jar" "$$@"' >> $@
148         chmod +x $@
149
150 telegps-jdb: Makefile
151         echo "#!/bin/sh" > $@
152         echo 'exec jdb -classpath "classes:./*:../libaltos:$(JCOMMON)/jcommon.jar:$(JFREECHART)/jfreechart.jar" -Djava.library.path="../libaltos/.libs" org.altusmetrum.telegps.TeleGPS "$$@"' >> $@
153         chmod +x $@
154
155 telegps-test: Makefile
156         echo "#!/bin/sh" > $@
157         echo 'exec java -Djava.library.path="../libaltos/.libs" -jar telegps.jar "$$@"' >> $@
158         chmod +x $@
159
160 install-telegpsJAVA: telegps.jar
161         @$(NORMAL_INSTALL)
162         test -z "$(telegpsdir)" || $(MKDIR_P) "$(DESTDIR)$(telegpsdir)"
163         echo " $(INSTALL_DATA)" "$<" "'$(DESTDIR)$(telegpsdir)/telegps.jar'"; \
164         $(INSTALL_DATA) "$<" "$(DESTDIR)$(telegpsdir)"
165
166 $(JAR): classtelegps.stamp Manifest.txt $(JAVA_ICONS) $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS)
167         jar cfm $@ Manifest.txt \
168                 $(ICONJAR) \
169                 -C classes org \
170                 -C ../libaltos libaltosJNI
171
172 $(FATJAR): classtelegps.stamp Manifest-fat.txt $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) $(JFREECHART_CLASS) $(JCOMMON_CLASS) $(JAVA_ICONS)
173         jar cfm $@ Manifest-fat.txt \
174                 $(ICONJAR) \
175                 -C classes org \
176                 -C ../libaltos libaltosJNI
177
178 classaltosui.stamp: $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS)
179
180 libaltos.so: build-libaltos
181         -rm -f "$@"
182         $(LN_S) ../libaltos/.libs/"$@" .
183
184 libaltos.dylib:
185         -rm -f "$@"
186         $(LN_S) ../libaltos/"$@" .
187
188 altos.dll: ../libaltos/altos.dll
189         -rm -f "$@"
190         $(LN_S) ../libaltos/"$@" .
191
192 altos64.dll: ../libaltos/altos64.dll
193         -rm -f "$@"
194         $(LN_S) ../libaltos/"$@" .
195
196 ../libaltos/.libs/libaltos.so: build-libaltos
197
198 ../libaltos/altos.dll: build-altos-dll
199
200 ../libaltos/altos64.dll: build-altos64-dll
201
202 build-libaltos:
203         +cd ../libaltos && make libaltos.la
204 build-altos-dll:
205         +cd ../libaltos && make altos.dll
206
207 build-altos64-dll:
208         +cd ../libaltos && make altos64.dll
209
210 $(ALTOSLIB_CLASS):
211         -rm -f "$@"
212         $(LN_S) ../altoslib/"$@" .
213
214 $(ALTOSUILIB_CLASS):
215         -rm -f "$@"
216         $(LN_S) ../altosuilib/"$@" .
217
218 $(JFREECHART_CLASS):
219         -rm -f "$@"
220         $(LN_S) "$(JFREECHART)"/"$@" .
221
222 $(JCOMMON_CLASS):
223         -rm -f "$@"
224         $(LN_S) "$(JCOMMON)"/"$@" .
225
226 $(LINUX_DIST): $(LINUX_FILES) $(LINUX_EXTRA)
227         -rm -f $@
228         -rm -rf linux
229         mkdir -p linux/TeleGPS
230         cp -p $(LINUX_FILES) linux/TeleGPS
231         cp -p telegps-fat linux/TeleGPS/telegps
232         chmod +x linux/TeleGPS/telegps
233         tar cjf $@ -C linux TeleGPS
234
235 $(LINUX_SH): $(LINUX_DIST) $(srcdir)/../altosui/linux-install.sh
236         sed 's/AltOS/TeleGPS/g' $(srcdir)/../altosui/linux-install.sh | cat - $(LINUX_DIST) > $@
237         chmod +x $@
238
239 $(MACOSX_DIST): $(MACOSX_FILES)
240         -rm -f $@
241         -rm -rf macosx
242         mkdir macosx
243         cp -a TeleGPS.app macosx/
244         cp -a $(MACOSX_README) macosx/ReadMe.rtf
245         cp -a $(DOC) macosx
246         cp -p Info.plist macosx/TeleGPS.app/Contents
247         cp -p $(MACOSX_DRIVER) macosx
248         mkdir -p macosx/TeleGPS.app/Contents/Resources/Java
249         cp -p $(FATJAR) macosx/TeleGPS.app/Contents/Resources/Java/telegps.jar
250         cp -p libaltos.dylib macosx/TeleGPS.app/Contents/Resources/Java
251         cp -p $(ALTOSLIB_CLASS) macosx/TeleGPS.app/Contents/Resources/Java
252         cp -p $(ALTOSUILIB_CLASS) macosx/TeleGPS.app/Contents/Resources/Java
253         cp -p $(JFREECHART_CLASS) macosx/TeleGPS.app/Contents/Resources/Java
254         cp -p $(JCOMMON_CLASS) macosx/TeleGPS.app/Contents/Resources/Java
255         genisoimage -D -V TeleGPS-$(VERSION) -no-pad -r -apple -o $@ macosx
256
257 $(WINDOWS_DIST): $(WINDOWS_FILES) telegps-windows.nsi
258         -rm -f $@
259         makensis -Otelegps-windows.log "-XOutFile $@" "-DVERSION=$(VERSION)" telegps-windows.nsi
260
261 Manifest.txt: Makefile
262         echo 'Main-Class: org.altusmetrum.telegps.TeleGPS' > $@
263         echo "Class-Path: $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) $(FREETTS)/freetts.jar $(JCOMMON)/jcommon.jar $(JFREECHART)/jfreechart.jar" >> $@
264
265 Manifest-fat.txt:
266         echo 'Main-Class: org.altusmetrum.telegps.TeleGPS' > $@
267         echo "Class-Path: $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) freetts.jar jcommon.jar jfreechart.jar" >> $@
268