altosdroid: adjust Makefile rules
[fw/altos] / altosdroid / Makefile.am
index 2c6ffc2ceb73b863d2a5c4e221795ecb10aa0974..9ca2453177642b34004b34ac9caf128d43495e7c 100644 (file)
@@ -15,14 +15,25 @@ APKBUILDER=$(SDK)/tools/apkbuilder
 ZIPALIGN=$(SDK)/tools/zipalign
 
 SRC_DIR=src/org/altusmetrum/AltosDroid
+EXT_LIBDIR=libs
+ALTOSLIB_SRCDIR=../altoslib
+ALTOSLIB_JAR=altoslib_$(ALTOSLIB_VERSION).jar
 
-SRC=\
-       $(SRC_DIR)/AltosDroid.java \
-       $(SRC_DIR)/BluetoothChatService.java \
-       $(SRC_DIR)/DeviceListActivity.java
+ALTOSLIB=$(EXT_LIBDIR)/$(ALTOSLIB_JAR)
+
+SRC=$(SRC_DIR)/*.java
 
 all: $(all_target)
 
+$(EXT_LIBDIR):
+       mkdir -p $(EXT_LIBDIR)
+
+$(ALTOSLIB): $(EXT_LIBDIR) $(ALTOSLIB_SRCDIR)/$(ALTOSLIB_JAR)
+       cd $(EXT_LIBDIR) && ln -sf $(shell echo $(EXT_LIBDIR) | sed 's|[^/]\+|..|g')/$(ALTOSLIB_SRCDIR)/$(ALTOSLIB_JAR) .
+
+$(SRC_DIR)/BuildInfo.java: $(SRC)
+       ./buildinfo.sh
+
 if ANDROID
 install-release: bin/AltosDroid-release.apk
        $(ADB) install -r bin/AltosDroid-release.apk
@@ -30,13 +41,25 @@ install-release: bin/AltosDroid-release.apk
 install-debug: bin/AltosDroid-debug.apk
        $(ADB) install -r bin/AltosDroid-debug.apk
 
-bin/AltosDroid-debug.apk: $(SRC)
+bin/AltosDroid-debug.apk: $(SRC) $(ALTOSLIB)
        ant debug
 
-bin/AltosDroid-release.apk: $(SRC)
+bin/AltosDroid-release.apk: $(SRC) $(ALTOSLIB)
        ant release
+
+sign:
+       jarsigner -keystore release.keystore \
+          -signedjar bin/AltosDroid-release-signed.apk \
+          bin/AltosDroid-release-unsigned.apk AltosDroid
+       $(SDK)/tools/zipalign -f 4 \
+          bin/AltosDroid-release-signed.apk \
+          bin/AltosDroid-release.apk
+
 endif
 
-clean:
+clean: clean-local
        $(clean_command)
 
+clean-local:
+       rm -rf $(EXT_LIBDIR)
+