Force using opensdk-8 to build altosdroid
[fw/altos] / altosdroid / Makefile.am
index 36d28ca216ad1a0ef17c76bd4d3e90e4ca55fbe5..7fb16404d776cc27a681ee6a87ed7bc183c2b92c 100644 (file)
@@ -1,54 +1,96 @@
+DBG_APK=app/build/outputs/apk/debug/app-debug.apk
+REL_APK=app/build/outputs/apk/release/app-release.apk
+
 if ANDROID
-all_target=bin/AltosDroid-debug.apk bin/AltosDroid-release.apk
-clean_command=ant clean
+all_target=$(DBG_APK)
+if ANDROID_RELEASE
+all_target+=$(REL_APK)
+endif
 else
 all_target=
-clean_command=echo done
 endif
 
 SDK=$(ANDROID_SDK)
+SDK_TARGET=$(shell sed -ne 's/^target=//p' project.properties)
 
 DX=$(SDK)/platform-tools/dx
 ADB=$(SDK)/platform-tools/adb
 AAPT=$(SDK)/platform-tools/aapt
 APKBUILDER=$(SDK)/tools/apkbuilder
-ZIPALIGN=$(SDK)/tools/zipalign
+ZIPALIGN_A=$(SDK)/tools/zipalign
+ZIPALIGN_B=$(shell ls $(SDK)/build-tools/*/zipalign | tail -1)
 
-SRC_DIR=src/org/altusmetrum/AltosDroid
-EXT_LIBDIR=libs
+JAVA_SRC_DIR=app/src/main/java/org/altusmetrum/AltosDroid
+EXT_LIBDIR=app/libs
+RES_DIR=app/src/main/res
+DRAWABLE_DIR=$(RES_DIR)/drawable
+LAYOUT_DIR=$(RES_DIR)/layout
+MENU_DIR=$(RES_DIR)/menu
+VALUES_DIR=$(RES_DIR)/values
+XML_DIR=$(RES_DIR)/xml
 ALTOSLIB_SRCDIR=../altoslib
-ALTOSLIB_JAR=AltosLib.jar
+ALTOSLIB_JAR=altoslib_$(ALTOSLIB_VERSION).jar
 
 ALTOSLIB=$(EXT_LIBDIR)/$(ALTOSLIB_JAR)
 
-SRC=\
-       $(SRC_DIR)/AltosDroid.java \
-       $(SRC_DIR)/TelemetryService.java \
-       $(SRC_DIR)/TelemetryReader.java \
-       $(SRC_DIR)/AltosBluetooth.java \
-       $(SRC_DIR)/DeviceListActivity.java \
-       $(SRC_DIR)/Dumper.java
+JAVA_SRC=$(JAVA_SRC_DIR)/*.java $(JAVA_SRC_DIR)/BuildInfo.java
+
+DRAWABLES=\
+    $(DRAWABLE_DIR)/redled.png \
+    $(DRAWABLE_DIR)/greenled.png \
+    $(DRAWABLE_DIR)/grayled.png
+
+GRADLEW=JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 bash ./gradlew --no-daemon
+
+LAYOUTS=$(LAYOUT_DIR)/*.xml
+MENUS=$(MENU_DIR)/*.xml
+VALUES=$(VALUES_DIR)/*.xml
+XMLS=$(XML_DIR)/*.xml app/src/main/AndroidManifest.xml
+
+RES=$(LAYOUTS) $(MENUS) $(VALUES) $(XMLS)
+
+SRC=$(JAVA_SRC) $(DRAWABLES) $(RES)
 
 all: $(all_target)
 
+.NOTPARALLEL:
+
 $(ALTOSLIB): $(ALTOSLIB_SRCDIR)/$(ALTOSLIB_JAR)
        mkdir -p $(EXT_LIBDIR)
-       cd $(EXT_LIBDIR) && ln -s $(shell echo $(EXT_LIBDIR) | sed 's|[^/]\+|..|g')/$(ALTOSLIB_SRCDIR)/$(ALTOSLIB_JAR) .
+       cd $(EXT_LIBDIR) && ln -sf $(shell echo $(EXT_LIBDIR) | sed 's|[^/]\+|..|g')/$(ALTOSLIB_SRCDIR)/$(ALTOSLIB_JAR) .
+
+$(JAVA_SRC_DIR)/BuildInfo.java: $(filter-out $(JAVA_SRC_DIR)/BuildInfo.java,$(shell echo $(JAVA_SRC)))
+       ./buildinfo.sh
+
+$(DRAWABLE_DIR)/%.png: ../icon/%.png
+       cd $(DRAWABLE_DIR) && ln -sf $(shell echo $(DRAWABLE_DIR) | sed 's|[^/]\+|..|g')/$< .
 
 if ANDROID
-install-release: bin/AltosDroid-release.apk
-       $(ADB) install -r bin/AltosDroid-release.apk
+install-release: $(REL_APK)
+       $(ADB) install -r $(REL_APK)
 
-install-debug: bin/AltosDroid-debug.apk
-       $(ADB) install -r bin/AltosDroid-debug.apk
+install-debug: $(DBG_APK)
+       $(ADB) install -r $(DBG_APK)
 
-bin/AltosDroid-debug.apk: $(SRC) $(ALTOSLIB)
-       ant debug
+$(DBG_APK): $(SRC) $(ALTOSLIB)
+       $(GRADLEW) assembleDebug
 
-bin/AltosDroid-release.apk: $(SRC) $(ALTOSLIB)
-       ant release
-endif
+$(REL_APK): $(SRC) $(ALTOSLIB)
+       $(GRADLEW) build
+
+release: $(REL_APK)
+
+clean-local: $(GOOGLE_PLAY_SERVICES_LIB)
+       $(GRADLEW) clean
+       rm -f $(JAVA_SRC_DIR)/BuildInfo.java
+       rm -f $(DRAWABLES)
+       rm -rf $(EXT_LIBDIR)
+       rm -rf $(GOOGLE_PLAY_SERVICES_LIB)
 
-clean:
-       $(clean_command)
+else
+
+clean-local:
+
+endif
 
+clean: clean-local