X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosdroid%2FMakefile.am;h=f9f69662b9e25541ff0a9b65a1c1307170f3141b;hp=3860e110b1804357e8f070e792280852aa39f175;hb=HEAD;hpb=9e60fa214ad2c48fbe8f7e5c437681aa35d249fa diff --git a/altosdroid/Makefile.am b/altosdroid/Makefile.am index 3860e110..f9f69662 100644 --- a/altosdroid/Makefile.am +++ b/altosdroid/Makefile.am @@ -1,62 +1,106 @@ +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) +all_target += bin/AltosDroid-debug.apk +if ANDROID_RELEASE +all_target+=$(REL_APK) +all_target += bin/AltosDroid-release.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)/AltosDroidPreferences.java \ - $(SRC_DIR)/AltosVoice.java \ - $(SRC_DIR)/TelemetryService.java \ - $(SRC_DIR)/TelemetryReader.java \ - $(SRC_DIR)/TelemetryLogger.java \ - $(SRC_DIR)/AltosBluetooth.java \ - $(SRC_DIR)/DeviceListActivity.java \ - $(SRC_DIR)/BuildInfo.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) +bin/AltosDroid-debug.apk: $(DBG_APK) + mkdir -p bin + cp $^ $@ + +bin/AltosDroid-release.apk: $(REL_APK) + mkdir -p bin + cp $^ $@ + +.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) . -$(SRC_DIR)/BuildInfo.java: +$(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 -.PHONY: $(SRC_DIR)/BuildInfo.java +clean: clean-local