.SUFFIXES: .java .class
-CLASSPATH=..:/usr/share/java/*
+CLASSPATH=classes:./*:/usr/share/java/*
CLASSFILES=\
+ Altos.class \
+ AltosChannelMenu.class \
+ AltosConfig.class \
+ AltosConfigUI.class \
AltosConvert.class \
+ AltosCSV.class \
+ AltosCSVUI.class \
+ AltosDebug.class \
+ AltosEepromDownload.class \
+ AltosEepromMonitor.class \
+ AltosEepromReader.class \
+ AltosEepromRecord.class \
+ AltosFile.class \
+ AltosFlash.class \
+ AltosFlashUI.class \
+ AltosFlightInfoTableModel.class \
+ AltosFlightStatusTableModel.class \
AltosGPS.class \
AltosGreatCircle.class \
+ AltosHexfile.class \
+ AltosLog.class \
+ AltosLogfileChooser.class \
AltosParse.class \
+ AltosPreferences.class \
+ AltosRecord.class \
AltosSerialMonitor.class \
AltosSerial.class \
AltosState.class \
AltosTelemetry.class \
+ AltosTelemetryReader.class \
AltosUI.class \
AltosDevice.class \
- AltosDeviceLinux.class \
- AltosDeviceDialog.class
+ AltosDeviceDialog.class \
+ AltosRomconfig.class \
+ AltosRomconfigUI.class \
+ AltosVoice.class
-JAVAFLAGS=-Xlint:unchecked
+#FREETTSSRC=/home/keithp/src/freetts/freetts-1.2.2
+#FREETTSLIB=$(FREETTSSRC)/lib
+#FREETTSJAR=/usr/share/java/freetts.jar
+#FREETTSJAR= \
+# cmudict04.jar \
+# cmulex.jar \
+# cmu_time_awb.jar \
+# cmutimelex.jar \
+# cmu_us_kal.jar \
+# en_us.jar \
+# freetts.jar
-all: $(CLASSFILES) altosui altosui.jar
+JAVAFLAGS=-Xlint:unchecked -Xlint:deprecation
+
+OS:=$(shell uname)
+
+ifeq ($(OS),Linux)
+ALTOSUI_APP=altosui
+endif
+
+ifeq ($(OS),Darwin)
+ALTOSUI_APP=AltosUI.app/Contents/Resources/Java/altosui.jar
+endif
+
+all: altosui.jar $(ALTOSUI_APP)
+
+$(CLASSFILES):
.java.class:
- javac -cp "$(CLASSPATH)" $(JAVAFLAGS) $*.java
+ javac -encoding UTF8 -classpath "$(CLASSPATH)" $(JAVAFLAGS) $*.java
+
+altosui.jar: classes/altosui classes/libaltosJNI $(FREETTSJAR) $(CLASSFILES) Manifest.txt
+ cd ./classes && jar cfm ../$@ altosui/Manifest.txt altosui/*.class libaltosJNI/*.class
+
+classes/altosui:
+ mkdir -p classes
+ ln -sf .. classes/altosui
+
+classes/libaltosJNI:
+ mkdir -p classes
+ ln -sf ../../libaltos/libaltosJNI classes/libaltosJNI
+
+#$(FREETTSJAR):
+# ln -s $(FREETTSLIB)/$@ .
+
+ifeq ($(OS),Darwin)
+RESOURCES=altosui.jar $(FREETTSJAR) ../libaltos/libaltos.dylib
+
+$(ALTOSUI_APP): $(RESOURCES)
+ mkdir -p AltosUI.app/Contents/Resources/Java
+ cp $(RESOURCES) AltosUI.app/Contents/Resources/Java
+
+endif
-altosui: Makefile
- (echo '#!/bin/sh'; \
- echo exec java -cp '"$(CLASSPATH)"' altosui/AltosUI) > $@
- chmod +x $@
+ifeq ($(OS),Linux)
+altosui:
+ echo "#!/bin/sh" > $@
+ echo "exec java -Djava.library.path=/usr/lib/altos/libaltos -jar /usr/share/java/altosui.jar" >> $@
+ chmod +x ./altosui
-altosui.jar: $(CLASSFILES) Manifest.txt
- cd .. && jar cfm altosui/$@ altosui/Manifest.txt altosui/*.class
+install: altosui.jar altosui
+ /usr/bin/install -c altosui.jar $(DESTDIR)/usr/share/java/altosui.jar
+ /usr/bin/install -c altosui $(DESTDIR)/usr/bin/altosui
+
+endif
clean:
- rm -f *.class
+ rm -f *.class altosui.jar
+ rm -f AltosUI.app/Contents/Resources/Java/*
+ rm -rf classes