1 .SUFFIXES: .java .class
3 CLASSPATH=classes:./*:/usr/share/java/*
6 AltosChannelMenu.class \
13 AltosEepromDownload.class \
14 AltosEepromMonitor.class \
15 AltosEepromReader.class \
16 AltosEepromRecord.class \
20 AltosFlightInfoTableModel.class \
21 AltosFlightStatusTableModel.class \
23 AltosGreatCircle.class \
26 AltosLogfileChooser.class \
28 AltosPreferences.class \
31 AltosSerialMonitor.class \
34 AltosTelemetry.class \
35 AltosTelemetryReader.class \
38 AltosDeviceDialog.class \
39 AltosRomconfig.class \
40 AltosRomconfigUI.class \
43 # where altosui.jar gets installed
44 ALTOSLIB=/usr/share/java
46 # where freetts.jar is to be found
47 FREETTSLIB=/usr/share/java
49 # all of the freetts files
51 $(FREETTSLIB)/cmudict04.jar \
52 $(FREETTSLIB)/cmulex.jar \
53 $(FREETTSLIB)/cmu_time_awb.jar \
54 $(FREETTSLIB)/cmutimelex.jar \
55 $(FREETTSLIB)/cmu_us_kal.jar \
56 $(FREETTSLIB)/en_us.jar \
57 $(FREETTSLIB)/freetts.jar
59 # The current hex files
62 $(HEXLIB)/telemetrum-v1.0.ihx \
63 $(HEXLIB)/teledongle-v0.2.ihx
65 JAVAFLAGS=-Xlint:unchecked -Xlint:deprecation
67 ALTOSUIJAR = altosui.jar
68 FATJAR = fat/altosui.jar
74 DARWIN_ZIP=Altos-Mac.zip
76 WINDOWS_ZIP=Altos-Windows.zip
78 LINUX_TGZ=Altos-Linux.tgz
80 all: altosui.jar $(LINUX_APP)
81 fat: altosui.jar $(LINUX_APP) $(DARWIN_ZIP) $(WINDOWS_ZIP) $(LINUX_TGZ)
86 javac -encoding UTF8 -classpath "$(CLASSPATH)" $(JAVAFLAGS) $*.java
88 altosui.jar: classes/altosui classes/libaltosJNI $(CLASSFILES) Manifest.txt
89 cd ./classes && jar cfm ../$@ altosui/Manifest.txt altosui/*.class libaltosJNI/*.class
91 Manifest.txt: Makefile $(CLASSFILES)
92 echo 'Main-Class: altosui.AltosUI' > $@
93 echo "Class-Path: $(FREETTSLIB)/freetts.jar" >> $@
97 ln -sf .. classes/altosui
101 ln -sf ../../libaltos/libaltosJNI classes/libaltosJNI
104 echo "#!/bin/sh" > $@
105 echo "exec java -Djava.library.path=/usr/lib/altos -jar /usr/share/java/altosui.jar" >> $@
109 echo "#!/bin/sh" > $@
110 echo 'ME=`which "$0"`' >> $@
111 echo 'DIR=`dirname "$ME"`' >> $@
112 echo 'exec java -Djava.library.path="$$DIR" -jar "$$DIR"/altosui.jar' >> $@
115 fat/altosui.jar: $(CLASSFILES) fat/classes/Manifest.txt
117 test -L fat/classes/altosui || ln -sf ../.. fat/classes/altosui
118 test -L fat/classes/libaltosJNI || ln -sf ../../../libaltos/libaltosJNI fat/classes/libaltosJNI
119 cd ./fat/classes && jar cfm ../../$@ Manifest.txt altosui/*.class libaltosJNI/*.class
121 fat/classes/Manifest.txt: $(CLASSFILES) Makefile
123 echo 'Main-Class: altosui.AltosUI' > $@
124 echo "Class-Path: freetts.jar" >> $@
126 install: altosui.jar altosui
127 install -m 0644 altosui.jar $(DESTDIR)/usr/share/java/altosui.jar
128 install -m 0644 altosui.1 $(DESTDIR)/usr/share/man/man1/altosui.1
129 install altosui $(DESTDIR)/usr/bin/altosui
132 rm -f *.class altosui.jar
133 rm -f AltosUI.app/Contents/Resources/Java/*
138 rm -f $(DARWIN_ZIP) $(WINDOWS_ZIP) $(LINUX_TGZ)
141 FAT_FILES=$(FATJAR) $(FREETTSJAR) $(HEXFILES)
143 LINUX_FILES=$(FAT_FILES) ../libaltos/libaltos.so fat/altosui
144 $(LINUX_TGZ): $(LINUX_FILES)
148 cp $(LINUX_FILES) linux/AltOS
149 cd linux && tar czf ../$@ AltOS
151 DARWIN_RESOURCES=$(FATJAR) $(FREETTSJAR) ../libaltos/libaltos.dylib
152 DARWIN_EXTRA=$(HEXFILES)
153 DARWIN_FILES=$(DARWIN_RESOURCES) $(DARWIN_EXTRA)
155 $(DARWIN_ZIP): $(DARWIN_FILES)
157 cp -a AltosUI.app darwin/
158 mkdir -p darwin/AltosUI.app/Contents/Resources/Java
159 cp $(DARWIN_RESOURCES) darwin/AltosUI.app/Contents/Resources/Java
160 mkdir -p darwin/AltOS
161 cp $(DARWIN_EXTRA) darwin/AltOS
162 cd darwin && zip -j -r ../$@ AltosUI.app AltOS
164 WINDOWS_FILES = $(FAT_FILES) ../libaltos/altos.dll ../../telemetrum.inf
166 $(WINDOWS_ZIP): $(WINDOWS_FILES)
168 mkdir -p windows/AltOS
169 rm -f windows/AltOS/*
170 cp $(WINDOWS_FILES) windows/AltOS
171 cd windows && zip -j -r ../$@ AltOS