Merge branch 'master' of git://git.gag.com/fw/altos
[fw/altos] / ao-tools / altosui / Makefile
index 090911ef06f26f35c445bb2b4e136aa065fde984..63359fbbf4be82e3c01b970f3baf4c6370ebb203 100644 (file)
@@ -1,18 +1,98 @@
 .SUFFIXES: .java .class
 
-CLASSPATH=..:/usr/share/java/*
-CLASSFILES=AltosSerialMonitor.class AltosSerial.class AltosTelemetry.class AltosUI.class
-JAVAFLAGS=-Xlint:unchecked
+CLASSPATH=classes:./*:/usr/share/java/*
+CLASSFILES=\
+       Altos.class \
+       AltosChannelMenu.class \
+       AltosConfig.class \
+       AltosConfigUI.class \
+       AltosConvert.class \
+       AltosCSV.class \
+       AltosEepromDownload.class \
+       AltosEepromMonitor.class \
+       AltosEepromReader.class \
+       AltosEepromRecord.class \
+       AltosFile.class \
+       AltosFlightInfoTableModel.class \
+       AltosFlightStatusTableModel.class \
+       AltosGPS.class \
+       AltosGreatCircle.class \
+       AltosLog.class \
+       AltosParse.class \
+       AltosPreferences.class \
+       AltosRecord.class \
+       AltosSerialMonitor.class \
+       AltosSerial.class \
+       AltosState.class \
+       AltosTelemetry.class \
+       AltosTelemetryReader.class \
+       AltosUI.class \
+       AltosDevice.class \
+       AltosDeviceDialog.class \
+       AltosVoice.class
 
-all: $(CLASSFILES) altosui
+#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
+
+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=../libaltos -jar altosui.jar" >> $@
+       chmod +x ./altosui
+endif
 
 clean:
-       rm -f *.class
\ No newline at end of file
+       rm -f *.class altosui.jar
+       rm -f AltosUI.app/Contents/Resources/Java/*
+       rm -rf classes